c语言 解题 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年有多少头母牛?

//若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年有多少头母牛?#include<cstdlib>#include<iostream>intmain... // 若一头小母牛,从出生起第四个年头开始每年生一头母牛,按此规律,第n年有多少头母牛?
#include <cstdlib>#include <iostream> int main(void){ int n , zs1 , zs3 , zs2 , zs=0 , tmp; zs1=zs2=zs3=1; printf("输入年数:\n"); scanf("%d",&n); for(tmp=n;tmp>=4;tmp--)//计算公式 { zs=zs1+zs3; zs1=zs2; zs2=zs3; zs3=zs; printf("%d\n",zs);//每一年的参考数值 } if(n<=3) printf("%d年后牛的数量为:1\n",n);//前三年的数量 if(n<=50) printf("%d年后牛的数量为:%d\n",n,zs); //思念之后的数量 else printf("%d年后牛的太多了\n"); //超出显示范围 system("PAUSE"); return 0; }

这样是能算出来,但是年份超出58年 就超出了int的范围 显示负数 我想知道如何显示1000年以后的牛的正确数量...求帮助
#include <cstdlib>#include <iostream>int mu (int); int main(void){ int n ; int zs1 , zs3 , zs2 , zs=0 , tmp; zs1=zs2=zs3=1; printf("输入年数:\n"); scanf("%d",&n);//输入需要的年数 tmp = n; for(;tmp>=4;tmp--) { zs=zs1+zs3; zs1=zs2; zs2=zs3; zs3=zs; printf("%d",zs); } if(n<=3) printf("%d年后牛的数量为:1\n",n); else printf("%d年后牛的数量为:%d\n",n,zs); system("PAUSE"); return EXIT_SUCCESS; }
展开
 我来答
xiaot1021
2012-06-29 · TA获得超过326个赞
知道小有建树答主
回答量:274
采纳率:0%
帮助的人:235万
展开全部
将int型换成long型,或者double型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞天侠客再世
2012-06-30 · TA获得超过7419个赞
知道大有可为答主
回答量:7642
采纳率:78%
帮助的人:1799万
展开全部
这是裴波那契数列的一种变化.
更多追问追答
追问
我知道呀 我最终想知道的是超出 计算机int范围之后 需要怎么样才能继续正确显示数字
追答
定义成long 长整型看看
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
听海的声音qwe
2012-06-29 · TA获得超过291个赞
知道小有建树答主
回答量:467
采纳率:100%
帮助的人:307万
展开全部
你这是C还是C++
追问
c++
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式