当前位置:首页 » 编程语言 » 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。