解题思路:
本题最好的办法,是通过循环逆推整个过程,要注意的是猴子是先吃一半,再吃一个。所以我们逆推的时候,要先加那一个,再翻一倍。
注意事项:
题目是第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<iostream> using namespace std; int main() { int N,M=1,sum=1; cin>>N; for(int i=1;i<N;i++) { M++; M*=2; sum=M; } cout<<sum; //system("pause"); return 0; } 最简洁代码
iostream这个头文件是c语言的还是c++的呢,为什么我去查百度说法不一啊
象帝之先 2019-05-29 21:08:29 |
是C++的流输入输出头文件,C语言没有
专业报大腿 2019-07-07 22:53:16 |
c++
jdd 2019-10-13 15:19:40 |
@scorpiowolf #include<iostream>与#include <iostream>有什么区别啊?
象帝之先 2019-10-25 15:27:16 |
@HackerEast 没有区别,只是有些编译器会在include命令和头文件之间添加空格而已
seahorizon 2020-07-20 19:13:35 |
C++
#include <stdio.h> #include <math.h> int main() { int N,sum=0; scanf("%d",&N); int sig = pow(2,N-1); for( N; N>1; N--){ sum += pow(2,N-1); } printf("%d\n",sum + sig); return 0; }
经过推导后得出公式是 3*2^(n-1)-2
<iostream>c语言网编辑器没有这个文件或者目录 按你这样打上去 是错误的
剩的桃子是奇数怎么办,不就全错了?为什么没人问呢?偶数除以二减1肯定是奇数啊但之后你不管怎么算都是错的啊
#include<stdio.h> #include<math.h> int main() { int n; int dout; scanf("%d",&n); dout = pow(2,n) + pow(2,n-1) - 2; printf("%d\n",dout); return 0; }
basonghao 2019-04-23 13:41:45 |
你没有定义pow
十->二进制转换 (C语言代码)浏览:1410 |
剔除相关数 (C语言代码)浏览:1837 |
模拟计算器 (C语言代码)浏览:892 |
【明明的随机数】 (C++代码)浏览:781 |
WU-拆分位数 (C++代码)浏览:788 |
简单的a+b (C语言代码)浏览:817 |
永远的丰碑 (C语言代码)浏览:526 |
找出最长的字符串来 (C语言代码)浏览:1771 |
【计算直线的交点数】 (C语言代码)浏览:923 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:544 |