⑴ ,c语言:利用数组求斐波那契数列的前20项
代码如下:
int a[20]={1,1};
printf(“%d %d ”,a[0],a[1]);
for(int i=0;i<20;i++)
{
printf(“%d ”,a[i]=a[i-1]+a[i-2]);
}
(1)斐波那契数列前20项和c语言扩展阅读:
如何掌握C语言基础知识及技巧:
首先准备一台PC,学编程一般对PC没有太大的要求,一般主流的配置就好。
有了电脑之后,就得考虑安装什么操作系统了,主流使用的操作系统是windows,不过在这里不建议学习C编程使用windows,建议使用Linux。所以学习者最好安装双系统,或者彻底习惯Linux系统。
不管学习哪门编程语言,都建议学习者必须有一本关于此语言的全面知识的书籍,大一般采用的是谭浩强老师的《C语言程序设计》,还有 《C语言C++学习指南》从入门到精通(语法篇)视频课程在线学习等,建议学习者可以去仔细研读
⑵ 在c语言中,如何利用数组求斐波那契数列的前20项
#include<stdio.h>
intmain()
inti,fib[20]={0,1};
for(i=2;i<20;i++)
fib[i]=fib[i-2]+fib[i-1];
printf("%d",fib[19]);return0;
#include<stdio.h>
void main()
{long sum=0;
long a[20];
int i;
a[0]=1;a[1]=1;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
sum=sum+a[i];
printf("%ld",sum);
}
数列与矩阵
对于斐波那契数列1、1、2、3、5、8、13、……。有如下定义
F(n)=F(n-1)+F(n-2)
F(1)=1
F(2)=1
对于以下矩阵乘法
F(n+1) = (1,1 ) (F(n),F(n-1))T
F(n) =(1,0 ) (F(n),F(n-1))T
它的运算就是右边的矩阵 (1,1)乘以矩阵(F(n),F(n-1)),右边的矩阵(1,0 ) 乘以矩阵(F(n),F(n-1)),得到:
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
以上内容参考:网络-斐波那契数列
⑶ C语言 写程序,输出斐波那契数列的前20项,每行输出4个数
方法一for循环
publicclassFeiBoMethod{
定义三个变量方法
publicstaticvoidmain(String[]args){
inta=1,b=1,c=0;
System.out.println("斐波那契数列前20项为:");
System.out.print(a+"\t"+b+"\t");
因为前面还有两个1、1所以i<=18
for(inti=1;i<=18;i++){
c=a+b;
a=b;
b=c;
System.out.print(c+"\t");
if((i+2)%4==0)
System.out.println();
}
}
}
方法2使用数组的方式实现
publicclassFeiBoMethod{
定义数组方法
publicstaticvoidmain(String[]args){
intarr[]=newint[20];
arr[0]=arr[1]=1;
for(inti=2;i<arr.length;i++){
arr[i]=arr[i-1]+arr[i-2];
}
System.out.println("斐波那契数列的前20项如下所示:");
for(inti=0;i<arr.length;i++){
if(i%4==0)
System.out.println();
System.out.print(arr[i]+"\t");
}
}
}
(3)斐波那契数列前20项和c语言扩展阅读:
递归实现
publicclassFeiBoMethod{
使用递归方法
privatestaticintgetSum(intnum){
if(num==1||num==2)
return1;
else
returngetSum(num-1)+getFibo(num-2);
}
publicstaticvoidmain(String[]args){
System.out.println("斐波那契数列的前20项为:");
for(inti=1;i<=20;i++){
System.out.print(getSum(i)+"\t");
if(i%4==0)
System.out.println();
}
}
}
⑷ Fibonacci数列 求第20项和前20项和的c语言程序,帮忙看看哪出问题了
cout<<Fibonacci(&sum, 20)
<<endl
<<sum
<<endl;
这一句改成
cout<<Fibonacci(&sum, 20)
<<endl;
cout<<sum<<endl;
这两句运行出来就不是0了。。。
其实你sum已经定义成全局变量了。。。没有必要用指针传值的方式了哦。。。。
你把代码改成下面这样。。。
#include <iostream.h>
int sum = 0;
int Fibonacci(int i);
void main()
{
cout<<Fibonacci(20)<<endl;
cout<<sum<<endl;
}
int Fibonacci(int i)
{
if(i == 1) return 1;
if(i == 2) return 2;
sum += Fibonacci(i - 1);
return Fibonacci(i - 1) + Fibonacci(i - 2);
}
你试试吧。。。我运行出来结果不是0了。。。。
⑸ 求出斐波那契数列前20项的C语言程序 快帮帮忙哦
斐波那契数列的递推公式为Fn=Fn-1+Fn-2,F1=F2=1
int a,b,F,i,S20;
a=b=1;
S20=a+b;
for(i=3;i<=20;i++){
F=a+b;a=b;b=F;S20+=F;}
这个S20就是所求的前20项和。
⑹ 初学C语言菜鸟求助:显示斐波那契数列前20项,用一维数组编写
斐波那契数列应该是:0,1,1,2,3,5,8,13,21,34,55,89,144,233,...
规律是:f[0]=0,f[1]=1,f[i]=f[i-1]+f[i-2],i>1
#include
<stdio.h>
void
main()
{
int
i,fib[20]={0,1};
for
(i=2;
i<20;
i++)
{
fib[i]=fib[i-2]+fib[i-1];
}
for
(i
=
0;
i<20;
i++)
{
printf("%d
",fib[i]);
}
}
⑺ C语言斐波那契数列前20项
如果是笔试而且题目没有规定输出格式时,两种都可以;
如果是由机器测试程序,则必须 与试题规定的输出格式相一致才能算对的。它要求怎么样,就必须完全一样。
⑻ C语言中,求出斐波那契数列的前20项
斐波那契数列是:1,1,2,3,5,8,13,21,34,55,89...
规律是:f[0]=1,f[1]=1,f[i]=f[i-1]+f[i-2],i>1
#include <stdio.h>
void main()
{
int i,array[20]={1,1};
for (i=2; i<20; i++)
{
array[i]=array[i-2]+array[i-1];
}
for (i = 0; i<20; i++)
{
printf("%d ",array[i]);
}
printf("\n");
}
写好了,看一下,测试通过。。。
追问
那个能不能就是四个数四个数放一行??
追答
#include <stdio.h>
void main()
{
int i,array[20]={1,1};
for (i=2; i<20; i++)
{
array[i]=array[i-2]+array[i-1];
}
for (i = 0; i<20; i++)
{
printf("%4d\t",array[i]);
if((i+1)%4 == 0)
{
printf("\n");
}
}
printf("\n");
}
可以,想怎么样都可以。。。左右对齐都可以。。这里是右对齐~
把printf("%4d\t",array[i]);中的4去掉,就是左对齐,这个好看点。。
⑼ C语言:编写程序用数组处理求解Fibonacci数列前20项之和并输出。
斐波那契数列通项公式:斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……这个数列从第三项开始,每一项都等于前两项之和。
#include<stdio.h>
int main()
{
int a[20]={1,1},i=2;
printf("a[0]=a[1]=");
for(i=2;i<20;i++)
{
a[i]=a[i-1]+a[i-2];
// a[i-2]=a[i-1]; 这两行是多余的
// a[i-1]=a[i];
if(i%4==0)
printf("\n");
printf("a[%d]=%d ",i,a[i]);//加了格式说明符以及空格。
}
return 0;
}
⑽ c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和
C语言源程序如下:
#include<stdio.h>
int main()
{
int array[100]={1,1};//斐波那契数列前两个元素均为0
int i=0;//循环变量
int n=20;//数列需要求的个数
int sum = 0;//和变量
for(i=2;i<n+1;i++)//按递推原理依次求出后续元素
{
array[i]=array[i-1]+array[i-2];//数列原理
}
printf("arr[1]-arr[%d] = ", n);//提示输出数列元素
for (i = 0; i < n; i++)//遍历数列
{
printf("%d ",array[i]);//输出arr[1]-arr[n]元素内容
sum += array[i];//顺便进行求和
}
printf("
%d ", sum);//输出求和结果
return 0;
}
程序运行结果如下:
(10)斐波那契数列前20项和c语言扩展阅读:
利用递归原理进行求斐波那契数列的求解和求前n项和:
#include<stdio.h>
int fibonacci(int n) //递归函数
{
if (n == 0 || n == 1)
return 1;
if (n > 1)
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int i = 0;
for (i = 0; i < 30; i++)
{
printf("fibonacci(%d) = %d
", i, fibonacci(i));
}
return 0;
}