帮忙看看是怎么回事(小程序)??
猴子吃桃问题
#include <iostream.h>
#include <stdlib.h>
int sum(int n)
{
int sum1;//定义最后一天剩下了1个桃子
if(n==1)
sum1=1;
if(n>1)
{
return 2*(sum(n-1)+1);//递归调用,实际上就是sum(n)=2*(sum(n-1)+1)
}
return true;
}
void main()
{
int m=0;
cout<<"请输入猴子吃桃的天数:";
cin>>m;
if(m==0)
cout<<"您输入的天数不符合规则!!!!!"<<endl;
if(m>=1)
{
sum(m);
cout<<m<<"天前猴子总共摘了"<<sum(m)<<"个桃子~~~~"<<endl;
}
system("pause");
}
我定义sum函数为int,为什么最后算出来的结果能有那么大??
假如m=30,结果是1610612734,怎么回事呀,有符号整形不是-32768~32767之间么??