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

2021-06-22 11:48:20 字數 2326 閱讀 8533

最近在網上看到一些不錯的c語音演算法。列舉一些,供自己學習使用。有些有意思的演算法會附上c#的不同實現。

題目1:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少? 1.程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去

掉不滿足條件的排列。

2.程式源**:

main()

}

題目2:企業發放的獎金根據利潤提成。

利潤(i)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤i,求應發放獎金總數?

1.程式分析:請利用數軸來分界,定位。注意定義時需把獎金定義成長整型。      

2.程式源**:

main()

題目3:乙個整數,它加上100後是乙個完全平方數,再加上168又是乙個完全平方數,請問該數是多少? 1.程式分析:在10萬以內判斷,先將該數加上100後再開方,再將該數加上268後再開方,如果開方後

的結果滿足如下條件,即是結果。請看具體分析:

2.程式源**:

#include "math.h"

main()

}

題目4:輸入某年某月某日,判斷這一天是這一年的第幾天? 1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊

情況,閏年且輸入月份大於3時需考慮多加一天。

2.程式源**:

main()

sum=sum+day;  /*再加上某天的天數*/

if(year%400==0||(year%4==0&&year%100!=0))/*判斷是不是閏年*/

leap=1;

else

leap=0;

if(leap==1&&month>2)/*如果是閏年且月份大於2,總天數應該加一天*/

sum++;

printf("it is the %dth day.",sum);}

題目5:輸入三個整數x,y,z,請把這三個數由小到大輸出。 1.程式分析:我們想辦法把最小的數放到x上,先將x與y進行比較,如果x>y則將x與y的值進行交換,

然後再用x與z進行比較,如果x>z則將x與z的值進行交換,這樣能使x最小。

2.程式源**:

main()

/*交換x,y的值*/

if(x>z)

/*交換x,z的值*/

if(y>z)

/*交換z,y的值*/

printf("small to big: %d %d %d\n",x,y,z);

}

題目6:要求輸出西洋棋棋盤。 1.程式分析:用i控制行,j來控制列,根據i+j的和的變化來控制輸出黑方格,還是白方格。

2.程式源**:

#include "stdio.h"

main()

}

題目7:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少? 1.程式分析: 兔子的規律為數列1,1,2,3,5,8,13,21....

2.程式源**:

main()

}

題目8:判斷101-200之間有多少個素數,並輸出所有素數。 1.程式分析:判斷素數的方法:用乙個數分別去除2到sqrt(這個數),如果能被整除,      則表明此數不是素數,反之是素數。       2.程式源**:

#include "math.h"

main()

if(leap)

leap=1;

} printf("\nthe total is %d",h);

}

題目9:求100之內的素數    1.程式分析:

2.程式源**:

#include #include "math.h"

#define n 101

main()

} printf("\n");

}

演算法 有趣演算法合輯 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.程...

演算法 有趣演算法合輯 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.程式分析 此程式僅僅是把累加變成了累乘。...

有趣的演算法

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