C语言:一头母猪一年生一头小母猪,小母猪到第四年开始生产,问n年后有多少母猪,编写程序

如题所述

将每一年母猪分为四类,大母猪,一年小母猪,两年小母猪,三年小母猪,分别设为A,B,C,D,其数量用一个向量X表示为(a,b,c,d),那么从年龄变化和生育要求可以知道,第i年,a(i)=a(i-1)+d(i-1) b(i)=a(i-1) c(i)=b(i-1) d(i)=c(i-1),这个变化可以用一个矩阵Y表示
{(1,1,0,0),(0,0,1,0),(0,0,0,1),(1,0,0,0)},那么第i年的数量向量可以通过矩阵运算得到,X(i)=X(i-1)*Y,并假设初始向量为(1,0,0,0)然后进行迭代计算就可以啦!至于编程就不难了吧,当然前提条件是母猪不会死掉!
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-08-11
//刚写的code,测试通过,如果有疑问,欢迎交流
//开辟一个数组,记录当前年份下,1,2,3岁及大于等于4岁pig的个数
#include<stdio.h>
int main(){
int tar[4] = {0};
int n,i,tmp,pig_count =0;
tar[3] = 1;
scanf("%d", &n);
while(n>0){
tmp = tar[3];
tar[3] +=tar[2];
for(i = 2; i>0; i--){
tar[i] = tar[i-1];
}
tar[0] = tmp;
n--;
}
for(i = 0; i<4; i++)
pig_count+=tar[i];
printf("%d\n", pig_count);
return 0;
}

追问

谢啦

追答

客气

本回答被提问者采纳
第2个回答  2015-01-18
==一开始有几只母猪?追问

一只,是编写程序,不是计算

追答

恩,稍微等等

第3个回答  2015-01-18
没有答案,因为没有说明母猪多久死追问

假设母猪都不会死

相似回答