Ⅰ 求用c語言表達斐波那契數列
#include <stdio.h>
main( ){
long f1,f2,f;
int i,n;
scanf("%d",&n);
f1=f2=1;
if(n<=2)
f=1;
else
for(i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld
",f);
}
Ⅱ C語言問題:運用數組與遞歸函數的知識求解輸入一個整數,輸出對應的斐波那契數列
這個不難,我寫給你,你自己看一下。
代碼:
#include <stdio.h> //調用頭文件
int fib(int num);//函數聲明
int main()//主函數
{
int num;
printf(」輸入數值:」);
scanf(」%d」,&num);
printf(」%d\n」,fib(num));
}
int fib(int num)
{
int result;
if(n==0 || n==1)
result=1
else
result=fib(num-1)+fib(num-2);//遞歸調用函數
return result;
}
Ⅲ 我想用遞歸寫斐波那契數列,c語言
代碼:
#include<stdio.h>
int Fib(int n){//自定義函數
if(n<0)
return-1;
else if(n==0)
return 0;
else if(n==1)
return 1;
else
return Fib(n-1)+Fib(n-2);
}
int main(){
int num;
printf("請輸入要求取的第n項斐波那契數列n=");
if(scanf("%d",&num)){
if(num>=0){
printf("%d",Fib(num));
}
else
printf("Error!!!");
return 0;
}
return 0;
}
(3)c語言遞歸法怎麼列印斐波那契擴展閱讀:
斐波那契數列排列組合
有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法
這就是一個斐波那契數列:登上第一級台階有一種登法;登上兩級台階,有兩種登法;登上三級台階,有三種登法;登上四級台階,有五種登法……
1,2,3,5,8,13……所以,登上十級,有89種走法。
類似的,一枚均勻的硬幣擲10次,問不連續出現正面的可能情形有多少種?
答案是(1/√5)*{[(1+√5)/2]^(10+2)-[(1-√5)/2]^(10+2)}=144種。
求遞推數列a⑴=1,a(n+1)=1+1/a(n)的通項公式
由數學歸納法可以得到:a(n)=F(n+1)/F(n),將斐波那契數列的通項式代入,化簡就得結果。
Ⅳ C語言編程:用遞歸和非遞歸法輸出斐波那契數列
遞歸法:
#include<stdio.h>
void main()
{
int Fibonacci(int n);
int n,i,c=0;
printf("請輸入n的值:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
c = Fibonacci(i);
printf("%12ld",c);
if(i%4==0) //用於換行 4個一行;
printf("\n");
}
}
int Fibonacci(int n)//函數部分;
{
long int f;
if(n==1 || n==2)
{
f=1;
}
else
if(n>=3)
f = Fibonacci(n-1) + Fibonacci(n-2);
return f;
}
非遞歸法:
#include<stdio.h>
void main()
{
int i,n;
int f[]= {1,1};
printf("請輸入n的值:");
scanf("%d",&n);
for(i=2; i<=n; i++)
f[i] = f[i-2] + f[i-1];
for(i=0; i<=n; i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
遞歸可以使程序看起來比較簡潔,但缺點是效率比較低,並且可能導致棧溢出,因此需要靈活使用遞歸。
Ⅳ 編寫一段C語言程序:利用函數的遞歸調用求斐波那契數列,該數列的公式如下:
#include<stdio.h>
#include<stdlib.h>
int f(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return f(n - 1) + f(n - 2);
}
}
int main()
{
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
printf("%d ", f(i));
}
system("pause");
return 0;
}
Ⅵ 用C語言編程 斐波那契數列:1,1,2,3,5,8,13…,輸出前13項,每行輸出5個數。
public class FeiBoMethod {
// 使用遞歸方法
private static int getSum(int num) {
if (num== 1 || num== 2)
return 1;
else
return getSum(num- 1) + getFibo(num- 2);
}
public static void main(String[] args) {
System.out.println("斐波那契數列的前13項為:");
for (int i = 1; i <= 13; i++) {
System.out.print(getSum(i) + " ");
if (i % 5 == 0)
System.out.println();
}
}
}
(6)c語言遞歸法怎麼列印斐波那契擴展閱讀:
使用數組的方式實現
publicclassFeiBoMethod{
//定義數組方法
publicstaticvoidmain(String[]args){
intarr[]=newint[13];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契數列的前13項如下所示:");
for(inti=0;i<arr.length;i++){
if(i%5==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}