解题思路:思路在代码里
注意事项: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 人评分
C语言训练-数字母 (C语言代码)浏览:600 |
Tom数 (C语言代码)浏览:525 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:593 |
剪刀石头布 (C语言代码)浏览:1432 |
敲七 (C语言代码)浏览:2699 |
JAM计数法 (C语言代码)浏览:665 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:579 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:446 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:589 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:483 |