題目:一隻小猴子一天摘了許多桃子,第一天吃了一半,然後忍不住又吃了一個;第二天又吃了一半,再加上一個;後面每天都是這樣喫。到第10天的時候,小猴子發現只有一個桃子了。問小猴子第一天共摘了多少個桃子。
一、使用循環語句
1.使用for循環
#include<stdio.h>
int main()
{
int taozi = 1;
int day = 1;
for (day = 10; day > 1;day --)
{
taozi++;
taozi = 2 * taozi;
printf("第%d天的桃子是%d個\n",day,taozi);
}
printf("第一天小猴子一共摘了%d個桃子",taozi);
}
#include<stdio.h>
int main()
{
int day,taozi=1,i;
for(day=9;day>=1;day--)
{
taozi=(taozi+1)*2;
printf("第%d天的桃子是%d個\n",day,taozi);
}
printf("第一天小猴子一共摘了%d個桃子",taozi);
return 0;
}
【運行結果】
2.使用while循環
#include<stdio.h>
int main(void)
{
int taozi=1,day=10;
while(day>1){
taozi=(taozi+1)*2;
day--;
};
printf("第一天小猴子一共摘了%d個桃子",taozi);
return 0;
}
【運行結果】
3.使用do…while循環
#include<stdio.h>
int main(void)
{
int taozi=1,day=10;
do{
taozi=(taozi+1)*2;
day--;
}while(day>1);
printf("第一天小猴子一共摘了%d個桃子",taozi);
return 0;
}
【運行結果】
二、使用遞歸函數
#include<stdio.h>
int func(day)
{
int taozi;
if(day==10)
{
return taozi=1;
}
taozi=(func(day+1)+1)*2;
return taozi;
}
int main()
{
int taozi,day=1;
taozi=func(day);
printf("第一天小猴子一共摘了%d個桃子",taozi);
return 0;
}
【運行結果】