1.桃子问题
【问题描述】
某人摘下一些桃子,第一天卖掉一半,又吃了一个,第二天卖掉剩下的一半,又吃了一个,以后各天都是如此处理,到第n天发现只剩下一只桃子,试编写程序计算一共摘的桃子个数。
【输入形式】
一行:一个整数n(1 < n <= 1000)
【输出形式】
一行:一个整数,表示一开始的桃子个数。
【样例输入】
2
【样例输出】
4
#include<iostream>
using namespace std;
int main ()
{
int n,sum=1;
cin>>n;
for( ;n>1;n--){
sum=2*(sum+1);
}
cout<<sum<<endl;
return 0;
}
2.爬虫
【问题描述】
一条虫子在n英寸深的井底,每次一分钟爬行u英寸,但是它在再次爬行前必须先休息1分钟, 在休息过程中它将滑落d英寸,在反复向上爬行和休息后,多长时间虫子能爬出这口井?在此过程中,分钟的小数部分向上取整,如果攀爬结束时虫子正好到达井的顶部,则视为虫子已经爬出。假定d<u,n<100,当n=0时输入结束。
【输入形式】
输入包括多个测试用例。每行包含3个正整数n、u、d,为上面所提到的值。
【输出形式】
每个测试用例输入一行,表示虫子爬出井的时间。
【样例输入】
10 2 1
20 3 1
0 0 0
【样例输出】
17
19
#include <iostream>
using namespace std;
int main(){
int n,u,d,i=0,x;
while(true){
n=0;i=0;
cin>>n>>u>>d;
if(n==0){
break;
}
else {
x=(n-1)%(u-d);
if(x!=0){
i=(n-1)/</