解题思路:
本题最好的办法,是通过循环逆推整个过程,要注意的是猴子是先吃一半,再吃一个。所以我们逆推的时候,要先加那一个,再翻一倍。
注意事项:
题目是第N天早上发现还剩一个,也就是说第N天并没有吃,所以只需要计算之前N-1天吃的数量就是结果,故只需要循环N-1次
参考代码:
#include<iostream> using namespace std ; int main() { int n ; cin>>n ; int nNum = 1 ;//桃子总和 for(int i = 1;i <= n - 1;i++)//ps:是循环n-1次 { nNum += 1 ;//多吃的桃子 nNum *= 2 ;//加一倍 } cout<<nNum<<endl ; return 0 ; }
0.0分
38 人评分
#include<stdio.h> void main() { int m=1,n; scanf("%d",&n); while(n>1) { m=(m+1)*2; n--; } printf("%d\n",m); }
#include<stdio.h> int main() { int a,i,b,N; scanf("%d",&N); b=1; for(i=1;i<N;i++) { a=2*(b+1); b=a; } printf("%d",a); return 0; }
#include<cstdio> //学C习惯了:) using namespace std; int main() { int N,M=1; scanf("%d",&N); for(int i=1;i<N;i++) M=(M+1)*2; printf("%d",M); return 0; }
#include <stdio.h> int main() { int N; scanf("%d",&N); int i; int all=1; for( i=1;i<N;i++ ){ all = 2*(all+1); } printf("%d\n",all); return 0; }
#include<stdio.h> int main(){ int N,S=1; scanf("%d",&N); for(int i=1;i<N;i++){ S=2*(S+1); } printf("%d",S); return 0; }
#include<stdio.h> int main() { int day,sum=1; scanf("%d", &day); for (int i = 1; i <= day-1; i++)//最后一天没吃,所以day减一。 { sum = (sum + 1) * 2; } printf("%d", sum); return 0; }
#include<stdio.h> int main() { int N,x=1; scanf("%d",&N); for(int i=0;i<N-1;i++) x=(x+1)*2; printf("%d",x); return 0; }
#include<iostream>与#include <iostream>有什么区别啊?
【蟠桃记】 (C语言代码)浏览:648 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:543 |
printf基础练习2 (C语言代码)浏览:941 |
C语言程序设计教程(第三版)课后习题6.7 (C语言代码)浏览:518 |
计算质因子 (C++代码)浏览:1614 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)from DQM浏览:652 |
回文数字 (C语言代码)浏览:2509 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:575 |
字符串比较 (C语言代码)浏览:679 |
整除问题 (C语言代码)浏览:518 |