C言語での牛の再帰の話

再帰法による牛の話(C言語)

*トピックは次のとおりです:(トピックはC言語のWebサイトの1004からのものです)
ここに画像の説明を挿入します
*まず、トピックの意味が少し不明確です。年の初めと年の初めは2つの異なる概念です。
*指定された入力および出力形式に従って、次の表を推測できます。

ここに画像の説明を挿入します

*上記の表の簡単な分析:

4年目には4頭の牛がおり、1年目には1頭がAとマークされ、他の3頭は3歳、2歳、1歳です。
質問は、3歳の牛が2年目に出産できることを意味します。つまり、5年目には4歳の牛A(すでにAと同じステータス)がいて、他の4頭は3歳、2歳、1歳、1頭です。歳。
類推すると、8年目には6 A(毎年継続的に出産)、3歳が3歳、4歳が2歳、6歳が1歳です。
簡単に見つけることができます。n年目の牛の数は、n-1年の牛の数とn-3年の牛の数の合計です。
*したがって、次のコードがあります。

#include<stdio.h>

int main(){
    
    
	
    int a[54]={
    
    1,2,3,4};
	int i = 0, j, n;
	int b[100]={
    
    0};
	
    for(j = 4; j <= 53; j++){
    
    
		a[j] = a[j-1] + a[j-3];//递归思想
	}
	
    scanf("%d", &n);
    while(n!=0&&n<55){
    
    
        b[i] = a[n-1];//把a[n-1]的值依此赋予b数组 
		i++;	//记录赋予的次数 
    	scanf("%d", &n);
	}
	for(j = 0; j < i; j++){
    
    
		printf("%d\n", b[j]);
	}
	return 0;
}

これが私の最初のブログです。不適切な文章があれば、私をたくさん訂正していただければ幸いです。ありがとうございます。

トピックのリンクは次のとおりです
。C言語ネット1004の質問

おすすめ

転載: blog.csdn.net/weixin_42198265/article/details/111570924
おすすめ