习题4-10 猴子吃桃问题 (15分)
一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?
输入格式:
输入在一行中给出正整数N(1<N≤10)。
输出格式:
在一行中输出第一天共摘了多少个桃子。
输入样例:
3
1
输出样例:
10
1
思路:
————————————————
版权声明:本文为CSDN博主「蛋茄酱」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csd
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
/*
递归和循环的区别:
循环是自下而上,依次使用
递归是先递后归,即先自上而下在自下而上返回
*/
//方法一:递归
int monkey(int num)
{
int sum;//结束条件
if (num == 1)
sum = 1;
else//继续调用自己
sum =( monkey(num - 1) + 1)*2;
return(sum);
}
int main()
{
int n, total;
scanf("%d", &n);
printf("%d", monkey(n));
return 0;
}
n.net/Randomm1/article/details/107558589
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//方法二:循环
int main()
{
int n, sum, total=1,i;
scanf("%d", &n);
for (i = 1; i < n; i++)
{
total = (total + 1) * 2;
}
printf("%d", total);
return 0;
}