盘旋


私信TA

用户名:h2130819017

访问量:726

签 名:

溜了

等  级
排  名 164
经  验 6809
参赛次数 14
文章发表 6
年  龄 0
在职情况 学生
学  校 贺州学院
专  业

  自我简介:

TA的其他文章

解题思路:思路在代码里
    
注意事项:1、虽然题目要求最多只能输入十组数据,但其实将 for(i=1;i<=10;i++)  改为 while(1) [ps.当while()的括号内的值不为零,该循环就会运行], 进行提交,只要不该改变  if(n==0) break;  即其循环结束条件不改变,提交后依旧正确。

2、 如果觉得输出部分不好理解,可以自行定义一个变量来保存调用函数后的值,例如a=fun(n);然后把输出那一行改为:printf("%d\n",a);  即可。
参考代码:

#include

int fun(int n)

{

int average,remainder,total;//remainder为余数,

average=n/3;//能换的汽水瓶个数 

remainder=n%3;//换了汽水瓶后剩余的空瓶子个数 

total=average+remainder;//total为总瓶子的个数(包括空瓶和有汽水的瓶子) 

if(average==0&&total==1)   return 0;//average==0保证了n<3,也就是总的瓶子数少于三个。 

else if(average==0&&total==2) return 1;//average==0保证了n<3 ,也就是总的瓶子数少于三个。 

else return fun(total)+average; //将当前的总瓶子个数作为新的参数n,进行递归。 

}

int main()

{

int n,i;

for(i=1;i<=10;i++) //最多输入十组数据 

{

scanf("%d",&n);//输入 

if(n==0) break; //判断是否满足题设的结束条件 

printf("%d\n",fun(n));//处理及输出 

}

return 0;

}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区