Ezekiel


私信TA

用户名:Ezekiel

访问量:638

签 名:

排  名 992
经  验 1074
参赛次数 1
文章发表 9
年  龄 15
在职情况
学  校
专  业

  自我简介:

母牛的故事(c语言描述)

解题思路:

    我把牛的总数分为了四份:能生小牛的母牛(下表用“大”表示),第一年的小牛(①),第二年的小牛(②)以及第三年的小牛(③)。因为第三年的小牛在下一年会变成能生小牛的母牛,因此我们列出下表:



牛的总数
第一年10001
第二年1
1002
第三年11103
第四年11114
第五年22116
第六年33219
第七年443213
第八年664319
..................

    注意观察牛的总数(表中已标红)。细心的小伙伴已经看出来了,没错,从第四年起,每一年的总数等于前一年加上前三年的和。


注意事项:无。

参考代码:

#include<stdio.h>
    int main(){
    int a[55]={0,1,2,3},n,i;//i为第n年的牛,n为输入的数,因此区分一下。
    /*之所以这里第一个值为0因为第0年时没有牛出生,因此
    我们后面便可以直接将年份放入数组中而不必减去一个1*/
        for(i=4;i<=55;i++)
        a[i]=a[i-1]+a[i-3];//根据上面的思路列出式子
	    scanf("%d",&n);
		while(n!=0)//题目要求n=0表示输入数据的结束,不做处理,因此用“!=”
        	    {
		        printf("%d\n",a[n]);//题目要求每个输出占一行,因此使用一个换行符
			scanf("%d",&n);
		    }
	return 0;
}


  评论区