C语言 大大们帮我算算递增的牛群

来源:百度知道 编辑:UC知道 时间:2024/08/24 17:32:13
题目是: 若有一头小母牛从第四年开始每年生育一头母牛、按照此规律、第N年时有多少头母牛

#include <stdio.h>
main(void)
{
long int f1,f2,f3,f4;
int i;
scanf("%d",&d);
for (i=1;i<n;i++);
{
printf("%12ld%12ld%12ld%12ld",f1,f2,f3,f4);
if (i%4==0)
printf("\n");
f1=f1+f2+f3+f4;
f2=f1+f2+f3+f4;
f3=f1+f2+f3+f4;
f4=f1+f2+f3+f4;
}
printf("最终有%12ld只",f4)
system("pause");
}

- - 我总觉得这程序哪里错了
而且好像错得蛮严重
#include <stdio.h>
int main()
{
int a;
int n;
scanf("%d",&n);
if (n%4==0)
{
a=pow(2,(n/4));
}
else
{
a=pow(2,(n/4));
}
printf("最终有%d只",a);
system("pause");
}

- -
请问

这个是递归公式
f(n)=1 0<n<4
f(n)=f(n-3)+f(n-1) n>=4
接下来会写了吧?

不是当到四的倍数年的时候才生,四年之后就是所有大于四岁的母牛都在生,想明白没有,就是小牛过四年后也进入了生育大军,之后程序就简单了

#include <stdio.h>
#include <dos.h>//system()函数的包
#include <math.h>//pow()的包
void main()
{
double f=0,con=2;
int n=0,a=0,b=0;
scanf("%d",&n);
a=n%4;
b=(n-a)/4;
f=pow(con,(double)b);
printf("最终有%d只\n",(int)f);
system("pause");
}

通过编译了

同意一楼的 算法是这样,但是要用上递归 每4年该变一次算法