題目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.程式分析 此程式僅僅是把累加變成了累乘。...
演算法 有趣演算法合輯 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各自有一把鎖和只能開自己那把鎖的鑰匙...