c语言用什么函数做水仙花 用c语音编写水仙花数

c语言编程调用函数求水仙花数

水仙花数是指一个 n 位数 ( n≥3 ),每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

创新互联专注于洮南网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供洮南营销型网站建设,洮南网站制作、洮南网页设计、洮南网站官网定制、微信小程序服务,打造洮南网络公司原创品牌,更为您提供洮南网站排名全网营销落地服务。

所以可以依次通过模除求得每个位上的值,然后做n次幂后相加,再判断是否与本身相等,从而得到是否为水仙花数的结论。

以求所有三位数水仙花数为例,代码如下,其它相似。

#includestdio.h

#includestdlib.h

#includestdbool.h

int cube(const int n){//计算立方。如果是四位则是四次方,以此类推。

return n*n*n;

}

int isNarcissistic(const int n){//计算是否为水仙花数。

int hundreds=n/100;//百位

int tens=n/10-hundreds*10;//十位

int ones=n%10;//个位

return cube(hundreds)+cube(tens)+cube(ones)==n;//如果相等,则为水仙花数。

}

int main(void){

int i;

for(i=100;i1000;++i){//对所有三位数判断。

if(isNarcissistic(i))//如果是则输出。

printf("%d\n",i);

}

return 0;

}

c语言 编写一个判断是否为水仙花数的函数,并通过调用该函数打印输出所有水仙花数。

#includelt;stdio.hgt;

#includelt;math.hgt;

int narcissistic(int number);

void PrintN(int m,int n);

int main()

{

int m,n;

scanf("%d%d",m,n);

if(narcissistic(m))printf("%d is a narcissistic number\n",m);

PrintN(m,n);

if(narcissistic(n))printf("%d is a narcissistic number\n",n);

return 0;

}

int narcissistic(int number){

int i,n=0,sum=0,cnt=0;

n=number;

while(n){

cnt++;

n/=10;

}

n=number;

while(n){

i=n%10;

sum+=(int)pow(i,cnt);

n/=10;

}

if(sum==number)

return 1;

else

return 0;

}

void PrintN(int m,int n){

int i;

for(i=m+1;ilt;n;i++)

if(narcissistic(i))

printf("%d\n",i);

}

扩展资料:

printf函数使用注意事项

1、域宽

%d:按整型数据的实际长度输出。

如果想输出指定宽度可以指定域宽,%md--gt,m域宽,打印出来以后,在控制台上,显示m位;

如果要打印的数的位数如果超过我们设定m则原样输出;

如果要打印的数的位数如果小于设定的位数,则补空白,具体如下:

如果m为正数,则左对齐(左侧补空白);

如果m为负数,则右对齐(右侧补空白)。

2、转义字符

如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示。

如:printf("%f%%",1.0/3);输出结果:0.333333%。

参考资料:

百度百科——水仙花数

求水仙花数的C语言实现

#includestdio.h

int sxh(int number);//sxh=水仙花数

int main()

{

int i;

printf("输出1-10000间的水仙花数:");

for(i=1;i=10000;i++)

{

if(sxh(i))

printf("%5d",i);

}

printf("\n");

return 0;

}

int sxh(int number)     //定义判断水仙花数的函数

{

int sum=0,item,count=1,i=1,temp;

temp=number;

while(temp=10)

 {

count++;     //判断位数

temp/=10;

 }

 temp=number;

 while(i=count)

 {

  item=temp%10;

temp/=10;

sum=sum+item*item*item;

i++;

 }

 if(sum==number)

 return 1;

 else

 return 0;

}


分享题目:c语言用什么函数做水仙花 用c语音编写水仙花数
分享网址:http://scyanting.com/article/ddsosgj.html