/**
*
* 有一只猴子,第一天摘了若干个桃子 ,
* 当即吃了一半,但还觉得不过瘾 ,就又多吃了一个。
* 第2天早上又将剩下的桃子吃掉一半,还是觉得不过瘾,就又多吃了两个。
* 以后每天早上都吃了前一天剩下的一半加天数个
* (例如,第5天吃了前一天剩下的一般加5个)。
* 到第n天早上再想吃的时候,就只剩下一个桃子了。
* 输入:天数n
* 输出:第一天的桃子个数
*
*/
这个是一简单的猴子吃桃子
可以学习一下,int double的最大数限制
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
#include <limits.h>
#include <math.h>
double numbers(int day)
{
double result=1;
int i;
for(i=day-1;i>0;i--)
{
if((result+i)>(DBL_MAX/2))
{
return -50;
__asm__("\n\t");
}
result=(result+i)*2;
}
return result;
}
double strtoint(char str[])
{
double tint=0;
int i,j;
for(i=0;str[i]!='\0';i++)
{
if((str[i]<'0')||(str[i]>'9'))
{
return 0;
}
}
for(j=0;j<i;j++)
{
tint=tint+((int)(str[j]-'0')*(pow(10,i-j-1)));
}
if(tint>INT_MAX)
{
return -50;
}
return tint;
}
int main(int argc,char *argv[])
{
int day;
double x;
if(argc<2)
{
printf("Usage: [command] [days]\n");
printf(" [days] The number of days the monkeys eat\n");
exit(0);
}
day=(int)strtoint(argv[1]);
if((day<1)||(day==-50))
{
printf("Parameters must be numeric (int)\n");
printf("Must be greater than one day\n");
exit(0);
}
printf("The monkey eat %d days \n",day);
x=numbers(day);
if(x==-50)
{
printf("The number of days you too much\n");
printf("For example,1014 max day,Can only save so much \nBecause of number (double)\n");
exit(0);
}
printf("Need a total of %.0f peaches\n",x);
return 0;
}
分享到:
相关推荐
利用labVIEW进行编写的小程序 猴子吃桃子的问题 10天里猴子一共吃了多少个桃子呢
有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。采用链式数据结构实现上述求解。
猴子吃桃#include int main() { int days = 10; // 总共的天数 int peaches = 1; // 第十天剩下的桃子数量 // 从第九天开始逆推,计算每天剩下的桃子数量 for (int i = days - 1; i >= 1; i--) { peaches = ...
猴子吃桃子问题。有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。用多种方法实现求出原来这群猴子共摘了多少个桃子。要求:1)采用数组数据结构实现上述求解;2)采用...
猴子第一天摘下若干桃子,当即吃了一半,不过瘾又多吃了一个。第二天又将剩下的桃子吃了一半,又多吃了一个。以后每天都吃了前1天剩下的一半,再多一个。到第十天早上想吃时,见只剩下一个桃子了。
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾, //又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 //以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时, //...
Java 经典算法问题:五只猴子分桃子解题源码,此问题描述为:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。 第二只猴子把剩下的桃子又...
猴子吃桃子问题数据结构课程.doc
c语言版的猴子吃桃的源程序,用不同的方法求解桃子的总数。其中有递归算法,数组算法,链表算法。
猴子吃桃子问题-数据结构课程设计.doc
java代码-猴子吃桃子
已知这只猴子每天最多吃10个桃子,最少可以不吃桃子。问一共有多少种不同的吃法。 例如:X=3,Y=4时(即3天吃4个桃子)一共有下面列出的15种不同吃法 1 :0 0 4 2 :0 1 3 3 :0 2 2 4 :0 3 1 5 :0 4 0 6 :...
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上想再吃时,就只剩一个桃子了。求第一...
该算法是描述猴子吃桃,计算他现在拥有的桃子数,该算法为C#编写。
C语言算法合集含三个数从小到大排序、猴子吃桃子问题、百钱百鸡问题、渔夫打鱼问题、二分查找法、分块查找法、求水仙花数、统计单词个数、求最大公约数和最小公倍数、单链表的逆序
python游戏猴子如何吃桃子
猴子吃桃问题,数据结构课程设计,c语言版
猴子吃桃.c
跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一跳,猴子摘桃子h5小游戏,跳一...
protected void btnCalc_Click(object sender, ...//得到猴子去吃桃的次数 for (int i = 1; i ; i++) { b += 2 * i + 1; } txtCount.Text = (b + 1).ToString(); } //36人,36块砖 计算男女老少各多少人