c語言經典算法100例pdf版
C 語言經典算法 100 例
C 語言程式設計經典 100 例
A:【程式1】
題目:有1、2、3、4 個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
1.程式分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列後再去
掉不滿足條件的排列。
2.程式源代碼:
main()
{
int i,j,k;
printf( “\n “);
for(i=1;i 〈5;i++) /*以下為三重循環*/
for(j=1;j 〈5;j++)
for (k=1;k 〈5;k++)
{
if (i!=k&&i!=j&&j!=k)
printf( “%d,%d,%d\n “,i,j,k);
}
}
==============================================================
【程式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()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf( “%ld “,&i);
bonus1=100000*0.1;bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i 〈=100000)
bonus=i*0.1;
else if(i 〈=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i 〈=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i 〈=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i 〈=1000000)
bonus=bonus6+(i-600000)*0.015;
else
bonus=bonus10+(i-1000000)*0.01;
printf( “bonus=%d “,bonus);
}
==============================================================
【程式3】
題目:一個整數,它加上100 後是一個完全平方數,再加上168 又是一個完全平方數,請問
該數是多少?
1.程式分析:在10 萬以内判斷,先将該數加上100 後再開方,再将該數加上268 後再開方,
如果開方後的結果滿足如下條件,即是結果。請看具體分析:
2.程式源代碼:
#include “math.h “
main()
{
long int i,x,y,z;
for (i=1;i 〈100000;i++)
{ x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
printf( “\n%ld\n “,i);
}
}
==========================