编程小白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;
} 

测试看看

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