您現在的位置是:首頁 > 網頁遊戲首頁網頁遊戲
C語言編寫程式求水仙花數
- 2021-10-11
水仙花數的程式碼怎麼寫
C語言編寫程式求水仙花數
水仙花數是一個數學問題,其實質是一個三位數,個位數的立方加十位數的立方加百位數的立方之和等於這個三位數本身。例如153=1*1*1+5*5*5+3*3*3,即153=1+125+27。這是一個相對較為簡單的C程式,但程式中包括C程式知識與技巧非常的重要,對於初學者是一個非常好的練習手段。
程式思路:
三位數其範圍就是(100到999),利用迴圈來完成。
個位、十位、百位數字的提取,利用整型資料的整除或者取餘都可以完成。本例是利用整除來完成的,符合初學者的思維,演算法容易接受理解。
資料的驗證是利用if條件來完成,需要注意的是C語言中等於是”==”。
水仙花數源程式及解釋說明:
#include
int main()//定義整型主函式。
{
int x,a,b,c;//定義x,a,b,c四個整型變數。
for(x=100;x<1000;x++)//外層迴圈,水仙花數查詢範圍100到999。
{
a=x/100;//利用整除提取百位上的數字。
b=(x-a*100)/10;//提取十位上的數字,(x-a*100)是將三位數變成兩位數。
c=x-100*a-10*b;//提取個位上的數字。
if(x==a*a*a+b*b*b+c*c*c)//判斷水仙花數的條件,注意”==”號的使用。
printf(“%d\n”,x);//輸出水仙花數並且換行。
}
return 0;//返回主函式的值0。
}
源程式及執行結果
#include
int main()
{
int x,a,b,c,d,e,f;
for(x=100;x<1000;x++)
{
a=x/100;
b=(x-a*100)/10;
c=x-100*a-10*b;
if(x==a*a*a+b*b*b+c*c*c)
printf(“%d\n”,x);
}
return 0;
}