演算法 有趣演算法合輯 21 30

2022-09-01 09:33:14 字數 2175 閱讀 8925

題目21:有一分數序列:2/1,3/2。5/3,8/5。13/8,21/13...求出這個數列的前20項之和。

1.程式分析:請抓住分子與分母的變化規律。

2.程式原始碼:

main()

printf("sum is %9.6f\n",s);

}

題目22:求1+2!+3!+...+20!的和

1.程式分析:此程式僅僅是把累加變成了累乘。

2.程式原始碼:

main()

printf("1+2!+3!...+20!=%e\n",s);

}

題目23:利用遞迴方法求5!。

1.程式分析:遞迴公式:fn=fn_1*4!

2.程式原始碼:

#include "stdio.h"

main()

int fact(j)

int j;

題目24:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第

3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第乙個人大兩歲。

最後 問第乙個人。他說是10歲。請問第五個人多大?

1.程式分析:利用遞迴的方法,遞迴分為回推和遞推兩個階段。要想知道第五個人歲數,需知道

第四人的歲數,依次類推,推到第一人(10歲)。再往回推。

2.程式原始碼:

age(n)

int n;

main()

題目25:給乙個不多於5位的正整數,要求:一、求它是幾位數。二、逆序列印出各位數字。

1. 程式分析:學會分解出每一位數

2.程式原始碼:

main( )

題目26:乙個5位數。推斷它是不是回文數。即12321是回文數,個位與萬位同樣,十位與千位同樣。

1.程式分析:同25例

2.程式原始碼:

main( )

題目27:對10個數進行排序

1.程式分析:能夠利用選擇法,即從後9個比較過程中,選擇乙個最小的與第乙個元素交換,

下次類推,即用第二個元素與後8個進行比較,並進行交換。       

2.程式原始碼:

#define n 10

main()

/*output data*/

printf("after sorted \n");

for(i=0;i題目28:有乙個已經排好序的陣列。現輸入乙個數。要求按原來的規律將它插入陣列中。

1. 程式分析:首先推斷此數是否大於最後乙個數,然後再考慮插入中間的數的情況。插入後

此元素之後的數,依次後移乙個位置。

2.程式原始碼:

main()

;int temp1,temp2,number,end,i,j;

printf("original array is:\n");

for(i=0;i<10;i++)

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

printf("\n");

printf("insert a new number:");

scanf("%d",&number);

end=a[9];

if(number>end)

a[10]=number;

else

break;}}}

for(i=0;i<11;i++)

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

}

題目29:將乙個陣列逆序輸出。

1.程式分析:用第乙個與最後乙個交換。

2.程式原始碼:

#define n 5

main()

,i,temp;

printf("\n original array:\n");

for(i=0;i題目30:列印出楊輝三角形(要求列印出10行例如以下圖)   

1.程式分析:

11  1

1  2  1

1  3  3  1

1  4  6  4  1

1  5  10 10 5  1 

2.程式原始碼:

main()

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

for(j=1;j

演算法 有趣演算法合輯 21 30

題目21 有一分數序列 2 1,3 2,5 3,8 5,13 8,21 13.求出這個數列的前20項之和。1.程式分析 請抓住分子與分母的變化規律。2.程式源 main printf sum is 9.6f n s 題目22 求1 2 3 20 的和 1.程式分析 此程式只是把累加變成了累乘。2.程...

演算法 有趣演算法合輯 1 10

最近在網上看到一些不錯的c語音演算法。列舉一些,供自己學習使用。有些有意思的演算法會附上c 的不同實現。題目1 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式...

有趣的演算法

friday,july 22,2016 19 50 50 a b兩人分別在兩座島上。b生病了,a有b所需要的藥。c有一艘小船和乙個可以上鎖的箱子。c願意在a和b之間運東西,但東西只能放在箱子裡。只要箱子沒被上鎖,c都會偷走箱子裡的東西,不管箱子裡有什麼。如果a和b各自有一把鎖和只能開自己那把鎖的鑰匙...