編程小白C語言之"猴子喫桃子"

題目要求

有一堆桃子,猴子第一天吃了其中一半,並且多吃了一個!以後每天猴子都喫其中一半,然後再多喫一個.當到了第十天的時候,想再喫(還沒喫),發現只有一個桃子了,問:最初共有多少個桃子?

 思路分析

這猴子挺能喫啊,算數還可以哈,挺懂事的

言歸正傳,第十天,還沒喫,只有一個桃子,可以推測除第九天的桃子數量,每天都喫其中的一半,然後再多吃了一個

day9 = (day10  +1 ) *2

day8 = (day9 + 1 ) *2

..........

根據天數day來確定桃子的個數peachNum

爲什麼是根據天數來確定桃子的個數?因爲天數是已知,而且題目要求是求桃子的最初的數量!

 擼寫代碼

#include<stdio.h>
int peach(int day)
{
	if(day==10)
	{
		return 1;
	}
	else
	{
		return (peach(day+1)+1)*2;  //爲什麼day要+1?因爲第9天的桃子,是第10天數量+1個的2倍 
	}
 } 
 int main()
 {
 	int peachNum=peach(1);
 	printf("\n第一天有%d個桃子",peachNum); 
 	
 	return 0;
  } 

測試結果

當然了,除了題目要求之外 也可以將代碼寫得更完美一點

#include<stdio.h>
int peach(int day)
{
	if(day==10)
	{
		return 1;
	}
	else
	{
		return (peach(day+1)+1)*2;  //爲什麼day要+1?因爲第9天的桃子,是第10天數量+1個的2倍 
	}
 } 
 int main()
 {
 	int day;
	printf("請輸入天數:");
	scanf("%d",&day);
 	int peachNum=peach(day);
 	printf("\n第%d天有%d個桃子",day,peachNum); 
 	return 0;
} 

測試看看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章