C語言遞迴之母牛的故事
遞迴法下的母牛的故事(C語言)
*題目如下:(該題目來自於C語言網上的1004題)
*首先,該題目的題意有些不清楚,年初和年頭是倆個不一樣的概念。
*我們根據規定的輸入輸出格式,可以推斷出一下表格:
*簡略分析以上表格:
在第四年的時候,有四頭牛,一頭為第一年的母牛記作A,其他三頭分別是3歲,2歲,1歲。
而題目的意思是,3歲的牛在第二年就可以生育。也就意味著,第五年的時候,有奶牛A,4歲奶牛(已經和A具有同等地位),其他四頭分別是,3歲,2歲,1歲,1歲。
依此類推,第8年有6頭A(每年不斷生育),三頭3歲,四頭2歲,六頭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題
相關文章
- c語言_遞迴C語言遞迴
- C#語言函式遞迴C#函式遞迴
- 程式設計中的遞迴(C語言為例)程式設計遞迴C語言
- 母牛的故事 hd 2018
- C語言 遞迴實現二叉排序樹的插入C語言遞迴排序
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- GO語言————6.6 遞迴函式Go遞迴函式
- C語言-for迴圈之窮舉法練習C語言
- 函數語言程式設計之尾呼叫和尾遞迴函數程式設計遞迴
- C語言:迴文數計算C語言
- C#遞迴C#遞迴
- c語言遞迴函式實現求最大公約數(Euclid演算法)C語言遞迴函式演算法
- 藍橋杯訓練--母牛的故事(很清晰的思路)
- C# 遞迴的使用案例C#遞迴
- C#遞迴例程C#遞迴
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 基於C語言用遞迴思想實現斐波那契數列的函式設計C語言遞迴函式
- 細學C++之C++語言的特點C++
- C語言 不大於2019的最大反數、迴文數C語言
- 【C++】翻轉二叉樹(遞迴、非遞迴)C++二叉樹遞迴
- C語言學習【3】——判斷與迴圈C語言
- 函式之遞迴函式遞迴
- 一文帶你掌握C語言的迴圈結構C語言
- 演算法-一步步教你如何用c語言實現堆排序(非遞迴)演算法C語言排序遞迴
- C語言與嵌入式C語言的區別C語言
- Java語言非遞迴求第n個斐波那契數Java遞迴
- JavaScript之遞迴的簡單使用JavaScript遞迴
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- C語言:判斷一個字串是否為迴文C語言字串
- go語言與c語言的相互呼叫GoC語言
- C++之for迴圈、範圍for語句探究C++
- C語言訓練之杭電OJC語言
- C 語言程式設計利器之 CLion程式設計
- C語言C語言
- 10-17 c遞迴與遞推初識遞迴
- C語言函式傳遞指標引數的問題詳解C語言函式指標
- 聊聊C語言/C++—程式和程式語言C語言C++
- 《零基礎看得懂的C語言入門教程 》——(九)C語言二維陣列與迴圈巢狀C語言陣列巢狀