最近在網上看到一些不錯的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各自有一把鎖和只能開自己那把鎖的鑰匙...