日期:2014-05-20  浏览次数:20716 次

修女也编程?
编写打印如下的*号,帮帮忙了,看看谁写的即简单又实用
*******
  *****
    ***
      *
    ***
  *****
*******

------解决方案--------------------
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);
}
}
------解决方案--------------------
又是这种题呢

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 ": " "));
------解决方案--------------------
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();
}
}
}

------解决方案--------------------
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] = '* ';