摩托罗拉的面试题(50分送上,本人已做出,希望各位高手请教请教)

SaKura2003 2005-10-24 03:23:27
摩托罗拉的面试题(50分送上,本人已做出,希望各位高手请教请教)


但请在此贴http://community.csdn.net/Expert/topic/4312/4312301.xml?temp=4.470462E-02里回复,,因为小弟此贴没有人能给我满意的答复,所以把这50分放在能回答"摩托罗拉的面试题(50分送上,本人已做出,希望各位高手请教请教)
"这个问题上.
...全文
551 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwd 2006-02-28
  • 打赏
  • 举报
回复
我的答案:
public static void printDiamond( int cnt)
{
StringBuffer s=new StringBuffer(cnt*2);
s.setLength( cnt*2 );
for( int i=1; i<=cnt*2-1; i++)
{
int j=0;
if( i<=cnt)
for( j=0; j<cnt-i; j++) s.setCharAt( j, ' ');
else
for( j=0; j<i-cnt; j++) s.setCharAt( j, ' ');

for( int k=j; j< cnt*2-k; ){
s.setCharAt( j++, '*');
s.setCharAt( j++, ' ');
}

System.out.println( s );
}
}
leechiyang 2006-02-16
  • 打赏
  • 举报
回复
很明显是在考递归.
dhb77 2006-02-15
  • 打赏
  • 举报
回复
我可以打印出来,不过方法比较笨拙,请大家指点

void PrintStar()
{
#define LineNum 19

int nStarNum=0;
int nSpaceNum=0;
for(int n=1;n<=LineNum;n++)
{
nStarNum = LineNum - abs(2*(n-10));
nSpaceNum = abs(n-10);
char star[20] = "*******************";
char space[10] = " ";

char strStart[20];
star[nStarNum] = 0;
strcpy(strStart, star);

char strSpace[20];
space[nSpaceNum] = 0;
strcpy(strSpace, space);

char str[20];
strcat(strSpace, strStart);
strcpy(str, strSpace);

printf(str);
printf("\n");
}
}
xuguanghui1221 2005-10-24
  • 打赏
  • 举报
回复
该题可以看作每一行有空格和*组成.
每一行来说,空格的个数和*的个数跟行数是成一个很简单的函数关系的,既再线形关系的基础上 加上绝对值.
然后把换行语句放对位置旧好了!
loveFlycandy 2005-10-24
  • 打赏
  • 举报
回复
for (int i = 1; i <= 19; i++) {

int starNum = 19 - 取绝对值((i-10))*2

//画
}
believefym 2005-10-24
  • 打赏
  • 举报
回复
晕,不是说只能有一个外层循环的吗
treeroot 2005-10-24
  • 打赏
  • 举报
回复
不用循环写19个printf也可以呀
SaKura2003 2005-10-24
  • 打赏
  • 举报
回复
小弟的答案是:
public class TestFor{
public static void main(String [] args){
//char [] a = new char[19];
for(int i = 0 ; i<19 ; i++){
if(i<10){
char [] a = new char[19];
//这样也行
/*
for(int j = 0 ; j < 2*i+1; j++){
int temp = (19-(2*i+1))/2;
a[temp+j] = '*';
}
*/
for(int j = 18/2-i ; j <= 18/2+i ; j++){
a[j] = '*';
}
System.out.println(a);
}else{
char [] b = new char[19];
for(int j = i%10+1 ; j < 18-i%10 ; j++){
b[j] = '*';
}
System.out.println(b);
}
}
}
}
SaKura2003 2005-10-24
  • 打赏
  • 举报
回复
注意:
请到
http://community.csdn.net/Expert/topic/4312/4312301.xml?temp=4.470462E-02里回复,,因为小弟此贴没有人能给我满意的答复,所以把这帖的50分放在能回答"摩托罗拉的面试题"这个问题上.希望大家见凉哦。
SaKura2003 2005-10-24
  • 打赏
  • 举报
回复
原本是C++的一个贴子的.
但我不熟C++,只能用JAVA做了。
题目是:
1.打印如下图案,共19行,只能有一个for外层循环
* 
*** 
***** 
******* 
********* 
***********
************* 
*************** 
***************** 
*******************
***************** 
*************** 
************* 
*********** 
********* 
******* 
***** 
*** 
*

62,624

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧