C++中如何读取一个数的位数_C语言编写程序求水仙花数
C語言編寫程序求水仙花數(shù)
水仙花數(shù)是一個數(shù)學(xué)問題,其實質(zhì)是一個三位數(shù),個位數(shù)的立方加十位數(shù)的立方加百位數(shù)的立方之和等于這個三位數(shù)本身。例如153=1*1*1+5*5*5+3*3*3,即153=1+125+27。這是一個相對較為簡單的C程序,但程序中包括C程序知識與技巧非常的重要,對于初學(xué)者是一個非常好的練習(xí)手段。
程序思路:
1. 三位數(shù)其范圍就是(100到999),利用循環(huán)來完成。
2. 個位、十位、百位數(shù)字的提取,利用整型數(shù)據(jù)的整除或者取余都可以完成。本例是利用整除來完成的,符合初學(xué)者的思維,算法容易接受理解。
3. 數(shù)據(jù)的驗證是利用if條件來完成,需要注意的是C語言中等于是"=="。
水仙花數(shù)源程序及解釋說明:
#include //使用預(yù)處理命令調(diào)入標(biāo)準(zhǔn)輸入輸出頭文件。
int main()//定義整型主函數(shù)。
{
int x,a,b,c;//定義x,a,b,c四個整型變量。
for(x=100;x<1000;x++)//外層循環(huán),水仙花數(shù)查詢范圍100到999。
{
a=x/100;//利用整除提取百位上的數(shù)字。
b=(x-a*100)/10;//提取十位上的數(shù)字,(x-a*100)是將三位數(shù)變成兩位數(shù)。
c=x-100*a-10*b;//提取個位上的數(shù)字。
if(x==a*a*a+b*b*b+c*c*c)//判斷水仙花數(shù)的條件,注意"=="號的使用。
printf("%d",x);//輸出水仙花數(shù)并且換行。
}
return 0;//返回主函數(shù)的值0。
}
源程序及運行結(jié)果
#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",x);
}
return 0;
}
總結(jié)
以上是生活随笔為你收集整理的C++中如何读取一个数的位数_C语言编写程序求水仙花数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python的网页解析器_python
- 下一篇: c++ vector拷贝构造_JDK源码