解题思路:思路在代码里
注意事项: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 人评分
A+B for Input-Output Practice (VII) (C++代码)浏览:692 |
【偶数求和】 (C语言代码)记得sum的归零时机浏览:926 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:604 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:513 |
WU-复数求和 (C++代码)浏览:2015 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:506 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:576 |
字符逆序 (C语言代码)浏览:643 |
数字游戏 (C++代码)浏览:1184 |
剪刀石头布 (C++代码)浏览:1711 |