網站首頁 編程語言 正文
求解第N項斐波那契數列
斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21,34,55,89...
這個數列從第3項開始,每一項都等于前兩項之和。斐波那契數列,又稱黃金分割數列,顯然它又是一個線性遞推數列,由數學家萊昂納多·斐波納契首次引入此概念。在現代的物理,化學,生物等諸多領域,皆有重大影響。
在此求解過程中,我用了if 語句和for循環。話不多說,我就直接上代碼了。
#include<stdio.h> //1,1,2,3,5,8,13,21,34
int main(void)
{
int n, i;
int f1, f2, f3;
f1=1;
f2=1;
printf("請輸入您需要求的序列:");
scanf("%d",&n);
if(n==1)
{
f3=1;
}
else if(n==2)
{
f3=1;
}
else
{
for(i=3; i<=n; i++)
{
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
}
printf("%d\n",f3);
return 0;
}
求解斐波那契數列的前n項并輸出及兔子繁殖問題
斐波那契數列的定義
F1=1
F2=1
…
Fn=F(n-1)+F(n-2)
從第三項開始每一項的值都等于前一項加上前兩項的和。
算法思路
可以使用整型數組來存儲每一項的值,前兩項不能使用Fn的通項公式,所以得和其他項區別計算,當輸入總項數n后,我們定義一個大小為n的整型數組,然后使用一個for循環去計算從1到n的數列值,其中需要嵌套一個switch選擇語句用于區別前兩項和其他項的計算,switch語句后再加上一個printf輸出函數用于輸出每一項的數列值。
代碼實現
#include<stdio.h>
void main()
{
int n;
printf("請輸入需求的斐波那契數列總項數:\n");
scanf("%d",&n);
system("cls");//清屏輸出結果
int f[n];//定義整型數組來存儲每一項數列的值
for(int i=0;i<n;i++)
{
switch(i)
{
case 0:
f[i]=1;//第一項值為1
break;
case 1:
f[i]=1;//第二項值為2
break;
default:
f[i]=f[i-1]+f[i-2];
break;
}
printf("F%d=%d\n",i+1,f[i]);//因為數組的下標從0開始,數列的下標從1
//開始,所以i需要加1.
}
}
輸出結果:
F1=1
F2=1
F3=2
F4=3
F5=5
F6=8
F7=13
F8=21
F9=34
F10=55
F11=89
F12=144
兔子繁殖問題
(1) 問題描述
兔子在出生兩個月后,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔子都不死,那么一年以后可以繁殖多少對兔子?
(2) 問題分析
第一個月只有一對兔子,而且前兩個月還沒有繁殖能力,所以第一個月和第二個月的兔子對數都為1,分別記為F1=1,F2=1,到了第三個月,第一個月的兔子繁殖出了一對新兔子此時F3=2,第四個月,第一個月的兔子繼續繁殖出一對新兔子,而第三個月繁殖出的新兔子還沒有繁殖能力,所以F4=3,依次類推,不難發現這是一個斐波那契數列,所以繁殖一年(12個月)后兔子對數為F12=144。注意第十三個月不能算入內。
原文鏈接:https://blog.csdn.net/m0_68165845/article/details/123698482
相關推薦
- 2022-08-17 C++詳解如何通過模板實現元素的反序_C 語言
- 2022-06-24 Android實現按鈕點擊事件的三種方法總結_Android
- 2023-07-14 react封裝一個router6
- 2022-11-24 Redis實現持久化的方式匯總_Redis
- 2022-07-26 Android自定義評分控件的完整實例_Android
- 2022-05-20 Kafka 認證登錄注意事項
- 2022-10-07 C++函數指針與指針函數有哪些關系和區別_C 語言
- 2023-02-27 一文搞懂Golang?值傳遞還是引用傳遞_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支