求助,诺基亚面试题

soarhigh 2005-11-18 03:25:16
There are two errors in the following JAVA program:
  

static void g(int i){
   if(i==1){return;}
   if(i%2==0){g(i/2);return;}
   else {g(3*i);return;}
   }
  
please correct them to make sure we can get the printed-out result as below:
3 10 5 16 8 4 2 1
...全文
629 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zez 2005-11-18
  • 打赏
  • 举报
回复
晕..

这是java程序,另外题目要求打印出3 10 5 16 8 4 2 1, 当然要有打印函数

java打印是 System.Out.Print(" "+i);
zhainig 2005-11-18
  • 打赏
  • 举报
回复
递归调用!!
怎吗输出啊!!!
NeuSoftRen 2005-11-18
  • 打赏
  • 举报
回复
调用g(3)
NeuSoftRen 2005-11-18
  • 打赏
  • 举报
回复
static void g(int i)
{
printf("%d ",i);
   if(i==1)
{
return;
}
   if(i%2==0)
{
g(i/2);
}
   else
{
g(3*i+1);
}
}
soarhigh 2005-11-18
  • 打赏
  • 举报
回复
谢谢各位,不过还是不明白,没有 printf 或者 cout 语句,怎么可能得到3 10 5 16 8 4 2 1这样的结果呢?而且,输出参数是什么啊?
Kid4you 2005-11-18
  • 打赏
  • 举报
回复
static void g(int i){
   if(i==1){return;}
   else if(i%2==0){g(i/2);return;} //else
   else {g(3*i+1);return;} // +1
   }
yanxiazhiqiu 2005-11-18
  • 打赏
  • 举报
回复
up!
补充一下
static void g(int i){
   if(i==1){printf("%d\n",i);return;}
   if(i%2==0){printf("%d\t",i);g(i/2);return;}
   else {printf("%d\t",i);g(3*i+1);return;}
   }
SereinLi 2005-11-18
  • 打赏
  • 举报
回复
static void g(int i){
   if(i==1)
{
return;
}
   if(i%2==0)
{
g(i/2);
}
   else
{
g(3*i+1);
}
}
K 2005-11-18
  • 打赏
  • 举报
回复

static void g(int i){
   if(i==1){return;}
   if(i%2==0){g(i/2);return;}
   else {g(3*i+1);return;}
   }

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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