phfb.net
当前位置:首页 >> 用数组处理斐波那契数列 >>

用数组处理斐波那契数列

编程首先计算fibonacci数列1,1,2,3,5,8,13,21,的前n项(n不超过40)存入一维整型数组f中,再按%12d的格式输出每项的值,每6项换一行.说明:(1)输入数列项n,在scanf前不能用printf输出提示信息.测试用例:输入测试用例:输出5<回车1123510<回车

斐波那契数列应该是: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 void main() { int i,fib[20]={0,1}; for (i=2; i fib[i]=fib[i-2]+fib[i-1]; } for (i = 0; i printf("%d ",fib[i]); } }

for(i = 0;ifor(i = 1;i 追问: 是i的问题,那个就是为什么在下面的函数中加入一个int n;代码就错误了呢? 追答: 函数里的int n是传入参数,跟这个没关系啊,或者你判断一下n的范围if(n 追问: 追问: 为什么不能多一个int

不明白你要到底要问什么?第1、2项不是你给赋值的吗?你赋的值就是1和1啊?for (i=0;i<20;i++) { if (i%5==0) { printf ("\n"); // i=0、5、10、15时首先输入一个回车换行符,再执行下面的语句 } printf ("%12d",f[i]); //输出数组元素.}

#include long fib(int n) { if (n == 1 || n == 2) return 1; return fib(n - 1) + fib(n - 2); } main() { int n; scanf("%d", &n); printf("%ld\n", fib(n)); return 0; }

main() { int i,a[21]; a[0]=1,a[1]=1; for(i=2;i<=20;i++) a[i]=a[i-2]+a[i-1]; for(i=0;i<=20;i++) printf("%5d\n",a[i]); }

for(i=2;if[i]=f[i-2]+f[i-1];这个for循环就是给其他的数组元素赋值的

Java代码:public class Main { public static void main(String[] args) { int[] arr = new int[15]; int i; arr[0] = arr[1] = 1; for(i=2; i<arr.length; i++) { arr[i] = arr[i-1] + arr[i-2]; } for(i=1; i<arr.length+1; i++) { System.out.printf("%8d", arr[i-1]); if(i % 5 == 0) {

斐波那契数列通项公式:斐波那契数列指的是这样一个数列: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; }

你的for没加{},改成:#include<stdio.h> main() { int i; int f[20]={1,1}; for(i=2;i<20;i++) f[i]=f[i-1]+f[i-2]; for(i=0;i<20;i++){ if(i%5==0) printf("\n"); printf("%12d",f[i]);} printf("\n"); } 试试

网站首页 | 网站地图
All rights reserved Powered by www.phfb.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com