c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和 ,c语言:利用数组求斐波那契数列的前20项

\u7528C\u8bed\u8a00\u7f16\u7a0b \u6590\u6ce2\u90a3\u5951\u6570\u5217\uff1a1\uff0c1\uff0c2\uff0c3\uff0c5\uff0c8\uff0c13\u2026\uff0c\u8f93\u51fa\u524d13\u9879\uff0c\u6bcf\u884c\u8f93\u51fa5\u4e2a\u6570\u3002

public class FeiBoMethod {
// \u4f7f\u7528\u9012\u5f52\u65b9\u6cd5
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("\u6590\u6ce2\u90a3\u5951\u6570\u5217\u7684\u524d13\u9879\u4e3a\uff1a");
for (int i = 1; i <= 13; i++) {
System.out.print(getSum(i) + "\t");
if (i % 5 == 0)
System.out.println();
}
}
}

\u6269\u5c55\u8d44\u6599\uff1a\u4f7f\u7528\u6570\u7ec4\u7684\u65b9\u5f0f\u5b9e\u73b0
publicclassFeiBoMethod\uff5b
\uff0f\uff0f\u5b9a\u4e49\u6570\u7ec4\u65b9\u6cd5
publicstaticvoidmain\uff08String\uff3b\uff3dargs\uff09\uff5b
intarr\uff3b\uff3d\uff1dnewint\uff3b13\uff3d\uff1b
arr\uff3b0\uff3d\uff1darr\uff3b1\uff3d\uff1d1\uff1b
for\uff08inti\uff1d2\uff1bi\uff1carr\uff0elength\uff1bi\uff0b\uff0b\uff09\uff5b
arr\uff3bi\uff3d\uff1darr\uff3bi\uff0d1\uff3d\uff0barr\uff3bi\uff0d2\uff3d\uff1b
\uff5d
System\uff0eout\uff0eprintln\uff08\uff02\u6590\u6ce2\u90a3\u5951\u6570\u5217\u7684\u524d13\u9879\u5982\u4e0b\u6240\u793a\uff1a\uff02\uff09\uff1b
for\uff08inti\uff1d0\uff1bi\uff1carr\uff0elength\uff1bi\uff0b\uff0b\uff09\uff5b
if\uff08i\uff055\uff1d\uff1d0\uff09
System\uff0eout\uff0eprintln\uff08\uff09\uff1b
System\uff0eout\uff0eprint\uff08arr\uff3bi\uff3d\uff0b\uff02\uff3ct\uff02\uff09\uff1b
\uff5d
\uff5d
\uff5d

\u4ee3\u7801\u5982\u4e0b\uff1a
int a[20]={1\uff0c1}\uff1b
printf\uff08\u201c%d\t%d\t\u201d\uff0ca[0]\uff0ca[1]\uff09\uff1b
for\uff08int i=0\uff1bi<20\uff1bi++\uff09
{
printf\uff08\u201c%d\t\u201d\uff0ca[i]=a[i-1]+a[i-2]\uff09\uff1b
}

\u6269\u5c55\u8d44\u6599\uff1a
\u5982\u4f55\u638c\u63e1C\u8bed\u8a00\u57fa\u7840\u77e5\u8bc6\u53ca\u6280\u5de7\uff1a
\u9996\u5148\u51c6\u5907\u4e00\u53f0PC\uff0c\u5b66\u7f16\u7a0b\u4e00\u822c\u5bf9PC\u6ca1\u6709\u592a\u5927\u7684\u8981\u6c42\uff0c\u4e00\u822c\u4e3b\u6d41\u7684\u914d\u7f6e\u5c31\u597d\u3002
\u6709\u4e86\u7535\u8111\u4e4b\u540e\uff0c\u5c31\u5f97\u8003\u8651\u5b89\u88c5\u4ec0\u4e48\u64cd\u4f5c\u7cfb\u7edf\u4e86\uff0c\u4e3b\u6d41\u4f7f\u7528\u7684\u64cd\u4f5c\u7cfb\u7edf\u662fwindows\uff0c\u4e0d\u8fc7\u5728\u8fd9\u91cc\u4e0d\u5efa\u8bae\u5b66\u4e60C\u7f16\u7a0b\u4f7f\u7528windows\uff0c\u5efa\u8bae\u4f7f\u7528Linux\u3002\u6240\u4ee5\u5b66\u4e60\u8005\u6700\u597d\u5b89\u88c5\u53cc\u7cfb\u7edf\uff0c\u6216\u8005\u5f7b\u5e95\u4e60\u60efLinux\u7cfb\u7edf\u3002
\u4e0d\u7ba1\u5b66\u4e60\u54ea\u95e8\u7f16\u7a0b\u8bed\u8a00\uff0c\u90fd\u5efa\u8bae\u5b66\u4e60\u8005\u5fc5\u987b\u6709\u4e00\u672c\u5173\u4e8e\u6b64\u8bed\u8a00\u7684\u5168\u9762\u77e5\u8bc6\u7684\u4e66\u7c4d\uff0c\u5927\u4e00\u822c\u91c7\u7528\u7684\u662f\u8c2d\u6d69\u5f3a\u8001\u5e08\u7684\u300aC\u8bed\u8a00\u7a0b\u5e8f\u8bbe\u8ba1\u300b\uff0c\u8fd8\u6709 \u300aC\u8bed\u8a00C++\u5b66\u4e60\u6307\u5357\u300b\u4ece\u5165\u95e8\u5230\u7cbe\u901a\uff08\u8bed\u6cd5\u7bc7\uff09\u89c6\u9891\u8bfe\u7a0b\u5728\u7ebf\u5b66\u4e60\u7b49\uff0c\u5efa\u8bae\u5b66\u4e60\u8005\u53ef\u4ee5\u53bb\u4ed4\u7ec6\u7814\u8bfb

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;

}

程序运行结果如下:


扩展资料:

利用递归原理进行求斐波那契数列的求解和求前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; 

}



#include<stdio.h>

int main()

{int a[20],n,i,s=2;

 a[0]=a[1]=1;

 printf("1 1 ");

 for(i=2;i<20;i++)

 {a[i]=a[i-1]+a[i-2];

  s+=a[i];

  printf("%d ",a[i]);

 }

 printf("
sum=%d
",s);

 return 0;

}



#include<stdio.h>
int fib(int n);
int main(void)
{
    int sum=0;
    for(int i=1;i<=20;i++)
    {
        if(i%11==0)
            printf("
");
        printf("%5d",fib(i));
        sum+=fib(i);
    }
    printf("
前20项之和为:%d
",sum);
}
int fib(int n)
{
    if(n<3)
    return 1;
    else
    return fib(n-1)+fib(n-2);
}



  • 鏂愭尝閭e鏁板垪c++缂栫▼
    绛旓細1銆佺偣鍑绘枃浠堕夐」锛岄夋嫨鏂囦欢鈫掓柊寤衡啋椤圭洰鈫掑父瑙勨啋绌洪」鐩啋杈撳叆椤圭洰鍚嶏紝榧犳爣鐐瑰嚮纭畾銆2銆佸彸渚цВ鍐虫柟妗堬紝 鐐瑰嚮婧愭枃浠垛啋娣诲姞鈫掓柊寤洪」鈫掋3銆佸湪鍚嶇О浣嶇疆锛岃緭鍏ユ簮鏂囦欢鍚嶏紙鐗瑰埆娉ㄦ剰锛氭垜浠紪鍐欑殑鏄C鏂囦欢锛屾晠鍚庣紑鏀逛负.c锛夈4銆佹帴涓嬫潵灏辨槸缂栧啓绋嬪簭浜嗭紝濡锛屾眰鏂愭尝閭e鏁板垪鐨勫墠40椤癸紝鍏蜂綋浠g爜濡備笅銆5銆佸湪杩愯鐣岄潰...
  • c璇█绋嬪簭璐规尝绾宠タ鏁板垪
    绛旓細{ long int f1,f2; /*瀹氫箟闀挎暣鍨嬪彉閲忥紝鐢ㄤ簬瀛樻斁鏂愭尝閭e鏁板垪鐨勫墠涓ら」*/ int i; /*瀹氫箟鏁村瀷寰幆鍙橀噺i锛岀敤浜姹傛枑娉㈤偅濂鏁伴噺鐨勫悗20椤*/ f1=1;f2=1; /*鏂愭尝閭e鏁板垪鐨勫墠涓ら」璧嬪间负1锛岃繖鏄暟鍒楃殑瑙勫畾*/ for(i=1;i<=20;i++) /*寰幆锛20閬锛屾眰鍑哄苟鎵撳嵃姣忎竴閬嶇殑鏂愭尝閭e鏁板垪鐨...
  • 姹C璇█涓鏂愭尝閭e鏁板垪婧愮▼搴忓強瑙i噴?
    绛旓細鏂愭尝閭e鏁板垪瀹氫箟锛欶0 = 0 F1 = 1 Fn = Fn-1 + Fn-2 (n鈮2)鐩寸櫧鐨勮锛岀0椤广佺涓椤瑰垎鍒害瀹氫负0銆1锛岃嚜绗2椤瑰紑濮嬶紝姣忎竴椤圭瓑浜庡墠涓ら」涔嬪拰銆俰nclude <stdio.h>#define MAX 10 /*璐规尝閭e鏁板垪椤规暟涓婇檺*/void fibonacci (unsigned __int64 f[], int n) { /*鐢熸垚n椤硅垂娉㈤偅濂戞暟鍒...
  • 姹傜敤C璇█琛ㄨ揪鏂愭尝閭e鏁板垪
    绛旓細鎵撳紑缂栬瘧鍣紝杩欓噷浣跨敤鐨勬槸deccpp锛屼篃鍙互浣跨敤visual c++6.0锛堝湪windows10鍏煎鎬ф湁涓浜涢棶棰橈級鎴栬卾isual studio2017銆傝緭鍏ユ簮浠g爜 include <stdio.h> int fib(int n){ if(n==1||n==2)return 1;return fib(n-1)+fib(n-2);} int main(){ for(int i=1;i<=20;i++)printf("%d\n",f...
  • 鐢C璇█缂栫▼ 鏂愭尝閭e鏁板垪: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("鏂愭尝閭e鏁板垪鐨勫墠13椤逛负锛");for (int i ...
  • 鏂愭尝閭e鏁板垪濡備綍鐢C璇█瀹炵幇鍓峮椤瑰拰?
    绛旓細姣忎竴娆″惊鐜兘鍏堝皢褰撳墠a/b鍔犲埌sum涓婏紝骞跺埄鐢╰emp鏉ユ殏瀛榓鐨勫硷紝鐒跺悗閫氳繃鐩稿噺鍜屼氦鎹銆乥鏉ユ洿鏂癮鍜宐鐨勫笺傛渶缁堣緭鍑虹粨鏋滃嵆鍙傞渶瑕佹敞鎰忕殑鏄紝鏈鎵姹傜殑鏁板垪鏄竴涓憲鍚嶇殑鏂愭尝閭e锛團ibonacci锛夊瀷鏁板垪锛屽叾涓瘡涓厓绱犵瓑浜庡墠涓や釜鍏冪礌鐨勫拰锛屽洜姝ゆ垜浠彲浠ラ氳繃浜ゆ崲a鍜宐鐨勫瀹炵幇璁$畻銆
  • c璇█杈撳叆n,杈撳嚭鍦鏂愭尝鎷夊鏁板垪涓帓绗琻浣嶇殑鍚堟暟?
    绛旓細鏂愭尝閭e鏁板垪涓殑姣忎竴涓暟閮芥槸鍓嶄袱涓暟涔嬪拰锛屽墠涓や釜鏁版槸 0 鍜 1銆備絾鏄枑娉㈤偅濂戞暟鍒楀苟涓嶅寘鍚换浣曡川鏁帮紝鍥犳涓嶅瓨鍦ㄦ枑娉㈤偅濂戞暟鍒椾腑鎺掔n浣嶇殑璐ㄦ暟銆備絾鏄紝鎴戜滑鍙互杈撳嚭鏂愭尝閭e鏁板垪涓帓绗琻浣嶇殑绗竴涓悎鏁帮紝浠g爜濡備笅锛歚``include <stdio.h> int main() { int n, i, j, flag;printf("璇疯緭鍏锛")...
  • 鏂愭尝閭e鏁板垪鐨勯氶」鍏紡鍦C璇█涓浣曡〃杈?
    绛旓細鏂愭尝閭e鏁板垪鍦ㄦ暟瀛︿笂鐨勯氶」鍏紡涓 An=An-1+An-2 鍦C璇█涓紝鏍规嵁绠楁硶瀹炵幇涓嶅悓锛屽彲浠ユ湁寰堝绉嶈〃杈炬柟寮忋備互璁$畻鏂愭尝閭e绗琋椤瑰间负渚嬶紝璇存槑濡備笅銆備竴銆佷互鏁扮粍鏂瑰紡瀹炵幇锛歩nt fn(int n){ int *a,i,r; a=(int *)malloc(sizeof(int)*n);//鍒嗛厤鍔ㄦ佹暟缁勩 a[0]=1; a[1]=1;/...
  • C璇█缂栫▼:鍐欏嚭鏂愭尝閭e鏁板垪鐨勫墠40涓暟
    绛旓細include <stdio.h> int main(){ int f1 = 1;int f2 = 1;int f3,i;printf("%d\t%d\t",f1,f2);for(i = 1; i <= 38; i++){ f3 = f1 + f2;printf("%d\t",f3);f1= f2;f2= f3;} printf("\n");return 0;}
  • ,c璇█:鍒╃敤鏁扮粍姹傛枑娉㈤偅濂鏁板垪鐨勫墠20椤
    绛旓細浠g爜濡備笅锛歩nt a[20]={1锛1}锛沺rintf锛堚%d\t%d\t鈥濓紝a[0]锛宎[1]锛夛紱for锛坕nt i=0锛沬<20锛沬++锛墈 printf锛堚%d\t鈥濓紝a[i]=a[i-1]+a[i-2]锛夛紱}
  • 扩展阅读:少儿编程到底有多可怕 ... 初学编程必背50个 ... 少儿编程是学什么的 ... c十十编程要学多久 ... plc培训班一般多少钱 ... c++和python先学哪个 ... 少儿编程的三大证书 ... 编程必背100个代码 ... c语言编译器手机版app ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网