修女也编程? 编写打印如下的*号,帮帮忙了,看看谁写的即简单又实用******* ***** *** * *** ************ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.out.println("*******"); System.out.println(" *****"); System.out.println(" ***"); System.out.println(" *"); System.out.println(" ***"); System.out.println(" *****"); System.out.println("*******");符合简单实用的标准不? 无聊的小顶一下public class Test9 { public static void main(String[] args) { int n = 20; int width = 2 * n - 1; char[] c = new char[width]; for(int i=0; i<width; i++) c[i] = '*'; int big = width -1; int small = 0; for(int i=0; i<n-1; i++) { System.out.println(c); c[big] = ' '; big--; c[small] = ' '; small++; } for(int i=n; i<2*n-1; i++) { System.out.println(c); big++; c[big] = '*'; small--; c[small] = '*'; } System.out.println(c); }} joejoe1991() 真是服了你了,不过这种方法我已经知道了,假如把那个打印数扩大10倍呢,再改改吧 又是这种题呢 for(int i=1,len=7;i<=len;i++) for(int j=1;j<=len;j++) System.out.print((Math.abs(j-len/2-1)<=Math.abs(len/2-i+1)?"*":" ")+(j==len?"\n":"")); 扩大10倍:C:\java>java test********************************************************************** ********************************************************************* ******************************************************************* ***************************************************************** *************************************************************** ************************************************************* *********************************************************** ********************************************************* ******************************************************* ***************************************************** *************************************************** ************************************************* *********************************************** ********************************************* ******************************************* ***************************************** *************************************** ************************************* *********************************** ********************************* ******************************* ***************************** *************************** ************************* *********************** ********************* ******************* ***************** *************** ************* *********** ********* ******* ***** *** * *** ***** ******* ********* *********** ************* *************** ***************** ******************* ********************* *********************** ************************* *************************** ***************************** ******************************* ********************************* *********************************** ************************************* *************************************** ***************************************** ******************************************* ********************************************* *********************************************** ************************************************* *************************************************** ***************************************************** ******************************************************* ********************************************************* *********************************************************** ************************************************************* *************************************************************** ***************************************************************** ******************************************************************* ********************************************************************* zephyr_cc() 谢谢你啊,我看起来比较累啊,能解释一下吗,你是采取什么样的算法? zapdos() 谢谢你哦,不过我看不懂啊,尤其是你输出的语句,abs代表什么?详细解释一下吧,我初学的 zapdos() 强啊,打心眼里佩服,拜你为师!!! class Test { public static void main(String[] args) { print(8,2,'*'); } public static void print(int start,int step,char ch){ if(start<=0||step<=0)return; int i=0; for(i=start;i>0;i-=step){ for(int j=0;j<i;j++) System.out.print(ch); System.out.println(); } for(i+=2*step;i<=start;i+=step){ for(int j=0;j<i;j++) System.out.print(ch); System.out.println(); } }} 呵呵,第一次有人说俺强,其实这些读过高中的人都可以写得出来,里面就是一个图形的表达式而已比如,圆:(x^2+y^2=r^2)for(int i=1,len=30;i<=len;i++) for(int j=1;j<=len;j++) System.out.print((Math.pow(j-len/2-1,2)+Math.pow(i-len/2-1,2)<=169?"*":" ")+(j==len?"\n":" "));C:\java>java test * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *棱形:(|x-a/2|+|y-a/2|=a/2)for(int i=1,len=7;i<=len;i++) for(int j=1;j<=len;j++) System.out.print((Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)?"*":" ")+(j==len?"\n":""));C:\java>java test * *** ************ ***** *** *...... zapdos() 非常感谢你啊,过两天把分都给你们,但我还是不懂?这个|x-a/2|+|y-a/2|=a/2 和 这个(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1) 怎么扯上的?这个三元运算符我知道,但是这个算法是怎么实现的?abs(j-len/2-1)求什么的绝对值?为什么这样求啊?(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)啥意思? 这个你可以把嵌套的循环看作是一个坐标,因此j=x,i=ylen是长度,所以len=a代进去变换一下就得到了因为数组从0开始,所以另外有-1修正所以,在坐标上画圆跟在这个矩阵里画是一样的<=表示在范围内符合条件的点都点上*,否则填上空格所以这个图形就出来了 我也看不懂,zapdos() 能不能再解释下,先认真研究下先 char[] c = new char[];for(int i = 0;i<c.length;i++){ c[i] = *; }for(int i = n;i>0;i--){} public static void main(String[] arg) { final int LINE = 7; // 算法1 for (int i = -LINE / 2; i <= LINE / 2; i++) { for (int j = 1; j <= 2 * Math.abs(i) + 1; j++) { System.out.print("*"); } System.out.println(); } System.out.println(); // 算法2:这个比较有意思 int tmp = (LINE / 2 + 1) * (LINE / 2 + 1); for(int i = -tmp + 1 ; i <= tmp; i++ ){ if(i == 1) { continue; } System.out.printf("%c%s", '*', (Math.sqrt(Math.abs(i)) % 1 == 0) ? "\n" : ""); }} char[] c = new char[7];//数组的长度是第一行的星星的个数for(int i = 0;i<c.length;i++){ c[i] = '*';} int first = 0; int last = c.length-1;for(int i = 7;i>0;i--){ if(first ==0) System.out.println(c); c[first] =' '; c[last] = ' '; first++; last --; System.out.println(c); if(first == last){ while( first != c.length && last != 0){c[++first] = '*';c[--last] ='*';System.out.println(c);}return;}我测试过的,看看行不! } to:zapdos()____________________________你画出来的圆和菱形为什么只有右边一半,左边一半怎么没了?那你使用 ★ 画一个像一笔画画出来的五角星,要求可以更改五角星的半径,并能根据角度旋转,在控制台上输出。有空可以琢磨一下。 public class tt {public void qq(int i){ int c=i/2; if(i%2>0) { c=c+1; } for(int w=1;w<=c;w++){ for(int p=0;p<w-1;p++){ System.out.print(" "); } for(int j=0;j<i-(w-1)*2;j++){ System.out.print("*"); } System.out.println(""); } for(int w=c-1;w>=1;w--){ for(int p=w-1;p>0;p--){ System.out.print(" "); } for(int j=i-(w-1)*2;j>=1;j--){ System.out.print("*"); } System.out.println(""); }}public void aa(){ int i=Math.round(7/2); System.out.print(i);}public static void main(String args[]){ tt t=new tt(); t.qq(20); //t.aa();}} to bao110908(火龙果) ------------------------左边?不是有么?至于画星,这个,用graphs 2d应该挺容易的用控制台输出的话,应该会挺麻烦的思路:根据星的中心,算出星形的点坐标,控制坐标的范围在控制台可容纳之内,按顺序存入数组用嵌套的循环打印图形,另做方法f()决定显示*还是空格,传入当前点坐标i,jf方法内,遍历10个顶点,判断i,j与 星星上每2个相邻顶点联结成的点 的关系 是否跟中心与 星星上每2个相邻顶点联结成的点 的关系相同(因中心在星区域内,所以这步实际是判断当前点是否在星区域内)要点线判断关系,可以算出连线的截距与斜率,再代入当前点坐标,即可判断与直线的关系 to: zapdos我的想法和你的不一样,五角星也是在一个圆中的,只要得到五个点的坐标,画五条字符线就可以了。 to bao110908(火龙果)你写的代码怎么编译那么多错误啊?有测试吗?说说你的算法思想吧? to zapdos() 那你写这个倒塔是根据:(|x-a/2|+|y-a/2|=0)来写的? 有几道SCJP的考题大家帮忙看看为什么这么选 谁能说一下结合测试是怎么一会事,和单体测试比较有什么不同 难道就没有人作过这个吗?????急!!! 怎么把一个整数存到一个byte的数组里 jmf有没有像jdk的document 那样方便查询类用法的文档?? 请问JTABLE在APPLET里可以正常显示吗? 这段代码为什么错???实在没分了 急,关于URL类和HttpConnection类的问题,急在线等待!!! 请问谁有图形界面计算器的源码? Have a look!! 哪里有java的类库下载?sun里有吗? 一个小程序,大家看看 Referer问题.记录来源地址问题
System.out.println(" *****");
System.out.println(" ***");
System.out.println(" *");
System.out.println(" ***");
System.out.println(" *****");
System.out.println("*******");符合简单实用的标准不?
public class Test9 {
public static void main(String[] args) {
int n = 20;
int width = 2 * n - 1;
char[] c = new char[width];
for(int i=0; i<width; i++)
c[i] = '*';
int big = width -1;
int small = 0;
for(int i=0; i<n-1; i++) {
System.out.println(c);
c[big] = ' '; big--;
c[small] = ' '; small++;
}
for(int i=n; i<2*n-1; i++) {
System.out.println(c);
big++; c[big] = '*';
small--; c[small] = '*';
}
System.out.println(c);
}
}
for(int j=1;j<=len;j++)
System.out.print((Math.abs(j-len/2-1)<=Math.abs(len/2-i+1)?"*":" ")+(j==len?"\n":""));
C:\java>java test
**********************************************************************
*********************************************************************
*******************************************************************
*****************************************************************
***************************************************************
*************************************************************
***********************************************************
*********************************************************
*******************************************************
*****************************************************
***************************************************
*************************************************
***********************************************
*********************************************
*******************************************
*****************************************
***************************************
*************************************
***********************************
*********************************
*******************************
*****************************
***************************
*************************
***********************
*********************
*******************
*****************
***************
*************
***********
*********
*******
*****
***
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
*********************
***********************
*************************
***************************
*****************************
*******************************
*********************************
***********************************
*************************************
***************************************
*****************************************
*******************************************
*********************************************
***********************************************
*************************************************
***************************************************
*****************************************************
*******************************************************
*********************************************************
***********************************************************
*************************************************************
***************************************************************
*****************************************************************
*******************************************************************
*********************************************************************
{
public static void main(String[] args)
{
print(8,2,'*');
}
public static void print(int start,int step,char ch){
if(start<=0||step<=0)return;
int i=0;
for(i=start;i>0;i-=step){
for(int j=0;j<i;j++)
System.out.print(ch);
System.out.println();
}
for(i+=2*step;i<=start;i+=step){
for(int j=0;j<i;j++)
System.out.print(ch);
System.out.println();
}
}
}
比如,圆:(x^2+y^2=r^2)
for(int i=1,len=30;i<=len;i++)
for(int j=1;j<=len;j++)
System.out.print((Math.pow(j-len/2-1,2)+Math.pow(i-len/2-1,2)<=169?"*":" ")+(j==len?"\n":" "));C:\java>java test
*
* * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * * * * * *
* * * * * * * * * * * * *
* * * * * * * * * * *
*棱形:(|x-a/2|+|y-a/2|=a/2)
for(int i=1,len=7;i<=len;i++)
for(int j=1;j<=len;j++)
System.out.print((Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)?"*":" ")+(j==len?"\n":""));C:\java>java test
*
***
*****
*******
*****
***
*
......
这个|x-a/2|+|y-a/2|=a/2 和 这个(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1) 怎么扯上的?
这个三元运算符我知道,但是这个算法是怎么实现的?abs(j-len/2-1)求什么的绝对值?为什么这样求啊?(Math.abs(j-len/2-1)<=len/2-Math.abs(i-len/2-1)啥意思?
len是长度,所以len=a
代进去变换一下就得到了
因为数组从0开始,所以另外有-1修正所以,在坐标上画圆跟在这个矩阵里画是一样的<=表示在范围内符合条件的点都点上*,否则填上空格
所以这个图形就出来了
zapdos() 能不能再解释下,先认真研究下先
for(int i = 0;i<c.length;i++){
c[i] = *;
}
for(int i = n;i>0;i--)
{}
// 算法1
for (int i = -LINE / 2; i <= LINE / 2; i++) {
for (int j = 1; j <= 2 * Math.abs(i) + 1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println();
// 算法2:这个比较有意思
int tmp = (LINE / 2 + 1) * (LINE / 2 + 1);
for(int i = -tmp + 1 ; i <= tmp; i++ ){
if(i == 1) {
continue;
}
System.out.printf("%c%s", '*', (Math.sqrt(Math.abs(i)) % 1 == 0) ? "\n" : "");
}
}
for(int i = 0;i<c.length;i++)
{
c[i] = '*';
}
int first = 0;
int last = c.length-1;
for(int i = 7;i>0;i--)
{
if(first ==0)
System.out.println(c);
c[first] =' ';
c[last] = ' ';
first++;
last --;
System.out.println(c);
if(first == last)
{
while( first != c.length && last != 0)
{c[++first] = '*';
c[--last] ='*';
System.out.println(c);
}
return;
}
我测试过的,看看行不!
}
____________________________你画出来的圆和菱形为什么只有右边一半,左边一半怎么没了?那你使用 ★ 画一个像一笔画画出来的五角星,要求可以更改五角星的半径,并能根据角度旋转,在控制台上输出。有空可以琢磨一下。
public class tt {
public void qq(int i){
int c=i/2;
if(i%2>0)
{
c=c+1;
}
for(int w=1;w<=c;w++){
for(int p=0;p<w-1;p++){
System.out.print(" ");
}
for(int j=0;j<i-(w-1)*2;j++){
System.out.print("*");
}
System.out.println("");
}
for(int w=c-1;w>=1;w--){
for(int p=w-1;p>0;p--){
System.out.print(" ");
}
for(int j=i-(w-1)*2;j>=1;j--){
System.out.print("*");
}
System.out.println("");
}
}public void aa()
{
int i=Math.round(7/2);
System.out.print(i);
}
public static void main(String args[]){
tt t=new tt();
t.qq(20);
//t.aa();
}
}
------------------------
左边?不是有么?
至于画星,这个,用graphs 2d应该挺容易的用控制台输出的话,应该会挺麻烦的
思路:
根据星的中心,算出星形的点坐标,控制坐标的范围在控制台可容纳之内,按顺序存入数组
用嵌套的循环打印图形,另做方法f()决定显示*还是空格,传入当前点坐标i,j
f方法内,遍历10个顶点,判断i,j与 星星上每2个相邻顶点联结成的点 的关系 是否跟中心与 星星上每2个相邻顶点联结成的点 的关系相同(因中心在星区域内,所以这步实际是判断当前点是否在星区域内)
要点线判断关系,可以算出连线的截距与斜率,再代入当前点坐标,即可判断与直线的关系
你写的代码怎么编译那么多错误啊?有测试吗?说说你的算法思想吧?
那你写这个倒塔是根据:(|x-a/2|+|y-a/2|=0)来写的?