解题思路:
我们可以使用一下试数的办法,将问题给表达出来,例如第三天的时候只剩一个,得出表达式为:
第三天剩余:f(3) = 1;
第二天剩余:f(2) = 2 * (f(3)+1);
第一天剩余:f(1) = 2 * (f(2)+1);
由上面的式子我们可以得到一个规律,就是后一天剩余的数量为前一天剩余的数量加一在乘以二;
可以用一个循环来解决这个问题;
注意事项:
需要给sum符初值为最后一天的剩余量
参考代码:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d",&a);
int sum = 1;//最后一天剩余的数量
for(int i = a;i>1;i--)//求出前一天剩余的数量
{
sum = 2*(sum+1);
}
printf("%d",sum);
}
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1882 |
【回文数(二)】 (C语言代码)浏览:850 |
printf基础练习2 (C语言代码)浏览:940 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:1282 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:1411 |
【计算直线的交点数】 (C语言代码)浏览:1421 |
The 3n + 1 problem (C语言代码)浏览:548 |
IP判断 (C语言描述,蓝桥杯)浏览:1091 |
关于C语言变量位置的问题浏览:270 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:542 |