⑴ c語言中,如何輸出所有的水仙花數
水仙花數即三位的自冪數。所謂自冪數,就是指一個 n 位數 ( n≥3 ),其每位上的數字的 n 次冪之和等於本身。
所以水仙花數,首先是三位數,形式為abc,同時a,b,c的立方和值與原本數相同。
類似的還有
四位自冪數:四葉玫瑰數
五位自冪數:五角星數
六位自冪數:六合數
等等。
對於水仙花數的判斷,需要按照以下步驟:
1 提取該數的個位,十位,百位值。
2 計算三個數的立方和。
3 與原值比較,如相等則是。
要輸出所有水仙花數,需要:
1 對所有三位數,即100到999遍歷;
2 對每個數判斷是否為水仙花數,如是則退出。
當循環結束,所有的水仙花數就輸出成功了。
代碼如下:
int isNarcissistic(int n)
{
    int a = n/100;
    int b = n/10%10;
    int c = n%10;
    return a*a*a + b*b*b + c*c*c == n;
}
 
int main()
{
    int i;
    for(i = 100; i< 1000; i ++)
        if(isNarcissistic(i)) printf("%d ",i);
}
輸出結果如下:
153 370 371 407
⑵ C語言, 編寫函數判斷一個數是否是水仙花數,然後在主函數中求所有的水仙花 謝謝了啊
#include<iostream>
using namespace std;
int main()
{
	int i,a,b,c;
	 for(i=100;i<=999;i++)
	 {
	a=i/100;
	b=(i/10)%10;
	c=i%10;
	if (a*a*a+b*b*b+c*c*c==i)
	{
	cout<<i<<endl;
	}
}
	return 0;
所有的水仙花數?? 應該要給個范圍吧。水仙花數是有限的?? 我這個就是找出100到999內的水仙花數。
⑶ c語言求水仙花數!!!!
#include"stdio.h"
intmain(intargc,char*argv[]){
intn,i,j,k,t,s,m,x;
printf("Pleaseentern(int2<n<8)... n=");
if(scanf("%d",&n)!=1||n<3||n>7){
printf("Inputerror,exit... ");
return0;
}
for(k=1,i=0;i<n;i++,k*=10);
for(i=k/10;i<k;i++){
for(s=0,t=i;t>0;t/=10){
for(x=1,j=t%10,m=n;m--;x*=j);
s+=x;
}
if(s==i)
printf("%d ",s);
}
printf(" ");
return0;
}
運行樣例:

⑷ C語言編程輸出所有的「水仙花數」。
1、首先需要打開Dev-c++軟體,點擊「新建源代碼」。

⑸ 用C語言函數實現求所有水仙花數
#include<stdio.h>
#include<conio.h>
void main()
{
int i,j,k,n;
clrscr();
printf("Output the numbers are:\n");
for(n=100;n<1000;n++)
    {
    i=n/100;
    j=(n/10)%10;
    k=n%10;
    if(n==i*i*i+j*j*j+k*k*k)
        {
        printf("%d\n",n);
        }
    }
getch();
}
⑹ 用C語言怎麼編寫一個能求出所有的水仙花數的程序
#include <stdio.h>
#include <conio.h>
void main()
{
   int iPoh,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>
voidmain()
{
intm,n,a,b;
intsum=0;//對總和初始化
for(m=100;m<1000;m++)
{
n=m/100;
a=m%100/10;
b=m%10;//for循環
if(m==n*n*n+a*a*a+b*b*b)
printf("%d ",m);
sum=sum+m;//如果是水仙花數就顯示這個數並加到sum中
}
printf("%d ",sum);//尋找結束後顯示sum
}
⑻ 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>
int f1(int a,int n)     /* 求a 的 n 次方*/
{
int i;
int c=1;
for(i=0;i<n;i++)
   c*=a;
return c;
}
int f2(int a)              /* 返回 a 的位數*/
{
int i=0;
while(a)
{
a/=10;
i++;
}
return i;
}
void nar_num(int a,int b)    /* 求 水仙花數*/
{
   int sum=0;
   int m;
   int n;
   while(a<b)
   {
   n=f2(a);
   m=a;
   while(m)
   {
   sum+=f1(m%10,n);
   m/=10;
   }
   if(sum==a)
   printf("%ld\n",a);
   sum=0;
   a++;
   }
}
int main(int argc, char *argv[])
{
int a;
int b;
printf("please input two numbers:\n");
scanf("%d %d",&a,&b);
nar_num(a,b);
getchar();
return 0;
}
