當前位置:首頁 » 編程語言 » c語言水仙花數的寫法
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言水仙花數的寫法

發布時間: 2022-06-15 11:16:25

⑴ 水仙花數用c語言怎麼編

#include
<stdio.h>
void
main()
{
int
a,b,c,number;
for(number=2;number<=999;number++)
{
a=number/100;
b=number/10-10*a;
c=number-100*a-10*b;
if(number==a*a*a+b*b*b+c*c*c)
printf("%d\t",number);
}
}
裡面的a=number/100;
b=number/10-10*a;
c=number-100*a-10*b;
的不是很明白?
程序解釋:
a=number/100;這句用來取number的百位數,既a為百位數字;
b=number/10-10*a;這句指中的number/10指取三位數的前兩位(百位和十位),比如一個數123,取前兩位得到一個十位數12;後面的"-10*a"指扣去乘以十的百位數位,就是說12-10=2,因此的到的是十位數位;
c的做法也是一樣的:用總數扣去(十位數位)*10+(百位數位)*100,得到的是個位數位,於是完成了提取三位數各位數的工作.
不過這個做法的確讓人看了不是很明白,我建議用這個方法:
a=number/100%10;
b=number/10%10;
c=number/1%10;

⑵ C語言編程怎麼寫 求出所有的水仙花數

#include<stdio.h>
#include<conio.h>

voidmain()
{
intiPoh,iPos,iPog,iNum=0;/*定義變數ipoh為百位ipos為十位ipog為個位,iNum為最後的水仙花數字*/

for(iNum=100;iNum<=300;iNum++)
{
iPoh=iNum/100;/*分解出數字的百十個位上的數字*/
iPos=(iNum%100)/10;
iPog=iNum%10;

if(iPoh*iPoh*iPoh+iPos*iPos*iPos+iPog*iPog*iPog==iNum)/*判斷是否為水仙花數字*/
{
printf("%-6d",iNum);
}/*輸出結果*/
}

getch();}

⑶ C語言的水仙花數,怎麼搞

#include<stdio.h>
#include<math.h>
int main() {
int N,i,sum,n;
scanf("%d",&N);//輸入
for(i=pow(10,N-1);i<pow(10,N);i++)//N是幾位數,循環就從10的N-1次方至N次方,比如說N為3,那就是10的2次方(100)至10的3次方(1000)
{
sum=0;
n=i;
while(n)
{
sum+=pow(n%10,N);//計算每一位的N次方的和至sum
n=n/10;
}
if(sum==i) printf("%d\n",i);//比較和是否與原數i相等,如果相等則為水仙花數並輸出
}
}

⑷ 水仙花數的c語言編程。

C語言具體實現水仙花過程如下:

一、問題描述:

輸出所有的「水仙花數」,所謂的「水仙花數」是指一個三位數其各位數字的立方和等於該數本身,例如153是「水仙花數」,因為:153 = 13 + 53 + 33。

二、問題分析:

根據「水仙花數」的定義,判斷一個數是否為「水仙花數」,最重要的是要把給出的三位數的個位、十位、百位分別拆分,並求其立方和(設為s),若s與給出的三位數相等, 三位數為「水仙花數」,反之,則不是。

三、演算法設計:

「水仙花數」是指滿足某一條件的三位數,根據這一信息可以確定整數的取值范圍是 100〜999。對應的循環條件如下:

for(n=10; n<1000; n++) { //...... }

四、完整的代碼:

⑸ 求「水仙花數」,用C語言怎麼寫

#include "Stdio.h"
void main()
{
int a,b,c,s;
for(a=1;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
s=100*a+10*b+c;
if(s==(a*a*a+b*b*b+c*c*c))
printf("%d\n",s);
}
}
}
getchar();
}

⑹ C語言編寫水仙花數

&m);10,s;%ld"while(n,可把上述代碼移植到其他程序中;s=0;n=m/{p=n%10,如果求得的和等於m,n;10;/*PS:,則為水仙花數*/,可以使用;是水仙花數\if(s==m)printf("intp;*輸入長整形數字*/,s;/不是水仙花數\}/s+=p*p*p;*賦予s值為0*/):;/。*//*把m數字的第一位去掉,n存放中間數字*//n"*PS,可繼續*/voidmain(){longintm,從各位開始*/*求得m的第一位數字;請輸入一個整數;*繼續求和*/*定義整形數字;/*繼續依次去掉每一位數字*/:如還有不懂:m;,想求其他的;}/:"n=n/,判斷是否是水仙花數,s存放各位數字之和;elseprintf(",如果;):.h>/*定義長整形數字。經測試,m存放判斷的數字;n",是輸入一個數字;*當n不等於0時*/p=m%10;printf("/s+=p*p*p:上述代碼;stdio;*最後,直接除以10*/);/scanf("/,來存放每個位的數字*/,n!=0)/*求的每一位數字*/#include<

⑺ C語言 求水仙花數

#include<stdio.h>
void
main()
{
int
i,a,b,c;
for(i=100;i<=999;i++)
{a=i/100;
b=(i-a*100)/10;
c=i-b*10-a*100;
if(i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
}
試試這個
你的演算法可能有點問題
或者是類型轉換方面有問題吧

⑻ C語言編程輸出所有的「水仙花數」。

1、首先需要打開Dev-c++軟體,點擊「新建源代碼」。

⑼ 「水仙花數」C語言程序

代碼如下:

#include <stdio.h>

int main()

{

printf("輸出水仙花數: ");

int i=100;

for( ; i<1000; i++){

int num_0 = i%10;

int num_1 = i/10%10;

int num_2 = i/10/10%10;

if(i==(num_0*num_0*num_0+num_1*num_1*num_1+num_2*num_2*num_2))

printf("%d ", i);

}

return 0;

}

(9)c語言水仙花數的寫法擴展閱讀

自冪數是指一個 n 位數,它的每個位上的數字的 n 次冪之和等於它本身。

n為1時,自冪數稱為獨身數。顯然,0,1,2,3,4,5,6,7,8,9都是自冪數。

n為2時,沒有自冪數。

n為3時,自冪數稱為水仙花數,有4個:153,370,371,407;

n為4時,自冪數稱為四葉玫瑰數,共有3個:1634,8208,9474;

n為5時,自冪數稱為五角星數,共有3個:54748,92727,93084;

n為6時,自冪數稱為六合數, 只有1個:548834;

n為7時,自冪數稱為北斗七星數, 共有4個:1741725,4210818,9800817,9926315;

n為8時,自冪數稱為八仙數, 共有3個:24678050,24678051,88593477;

n為9時,自冪數稱為九九重陽數,共有4個:146511208,472335975,534494836,912985153;

n為10時,自冪數稱為十全十美數,只有1個:4679307774。