水仙花c语言自定义函数 水仙花c语言编程所有方法

编写自定义函数,求水仙花数,并输出水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身 。例如:153=13 53 33 。本题要求编写两个函数,一个判断给定整数是否水仙花数,另一个按从小到大的顺序打印出给定区间(m,n)内所有的水仙花数 。
函数接口定义:
int narcissistic(int number);
void PrintN(int m,int n);
函数narcissistic判断number是否为水仙花数,是则返回1,否则返回0 。
函数PrintN则打印开区间(m,n)内所有的水仙花数,每个数字占一行 。题目保证100≤m≤n≤10000 。
例:
#includelt;stdio.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;
}
运行:
扩展资料:
方法一、
#includelt;stdio.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 count,digit,item,n,sum,ret,k,i;
n=number,count=0;
while(n){//算出number是几位数 。
n/=10;
count;
}
sum=0,n=number;
while(n){
digit=n;
item=1;
for(i=0;ilt;count;i)
item*=digit;
sum =item;
n/=10;
}
if(sum==number)ret=1;
else ret=0;
return ret;
}
void PrintN(int m,int n){
int i;
for(i=m 1;ilt;n;i)
if(narcissistic(i))printf("%d\n",i);
}
方法二:
int narcissistic(int number){
int count,sum,temp,ret;
count=0,temp=number;
while(temp){
count;
temp/=10;
}
sum=0,temp=number;
while(temp){
sum =pow(temp,count);
temp/=10;
}
if(sum==number)ret=1;
else ret=0;
return ret;
}
void PrintN(int m,int n){
int i;
for(i=m 1;ilt;n;i)
if(narcissistic(i))printf("%d\n",i);
}
C语言 水仙花数#include stdio.h
int fun(int a,int b)
{
int i,m,n,k,count=0;
if(ab)
{
for(i=b;i=a;i)
{
m=i/100;
n=(i0)/10;
k=i;
if(i==((m*m*m) (n*n*n) (k*k*k)))
{
count =1;
printf("%d\n",i);
}
}
}
else if(ab)
{
for(i=a;i=b;i)
{
m=i/100;
n=(i0)/10;
k=i;
if(i==(m*m*m) (n*n*n) (k*k*k))
{
count =1;
printf("%d\n",i);
}
}
}
else
{
m=a/100;
n=(a0)/10;
k=a;
if(a==(m*m*m) (n*n*n) (k*k*k))
{
count=1;
printf("%d\n",a);
}
}
printf("%d\n",count);
return 0;
}
void main()
{
int a,b;
printf("请输入要查找的区间端点(三位数以内):");
scanf("%d%d",a,b);
fun(a,b);
}
不知道是不是你要的~~~
C语言 定义和调用函数求水仙花数函数返回值有问题水仙花c语言自定义函数,输出有问题
第12行改为水仙花c语言自定义函数:
if(is(i))printf("%d\n",i);
第23行水仙花c语言自定义函数:
return 1; return 0
自己编的c语言水仙花数方法水仙花c语言自定义函数:先弄懂什么是水仙花数水仙花c语言自定义函数::
水仙花数是指一个n(=3)位数字水仙花c语言自定义函数的数,它等于每个数字的n次幂之和 。
3位水仙花数————先定义3个数其中一个为1--9;2个为0--9;(用for循环)
再用如果a定义为1--9那么用100*a来表示百位;如果b或者c定义是0--9那么用10*b或者10*c来表示十位;那么下面用c或者b来表示个位;
if(100*a 10*b c==a*a*a b*b c)
如果满足这个条件那么:输出的printf("%d%d%d",a,b,c)就是3位数的水仙花数:
4位水仙花数方法同上:
刚写的:调试过水仙花c语言自定义函数了
#include
stdio.h
int
main(void)
{
int
a,b,c,d;
system("cls");
for(a=1;a=9;a)
for(b=0;b=9;b)
for(c=0;c=9;c)
if(100*a 10*b c==a*a*a b*b*b c*c*c)
printf("%d%d%d\n",a,b,c);
for(a=1;a=9;a)
for(b=0;b=9;b)
for(c=0;c=9;c)
for(d=0;d=9;d)
if(1000*a 100*b 10*c d==a*a*a*a b*b*b*b c*c*c*c d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
getch();
}
或者这样:
#include
stdio.h
int
main(void)
{
int
a,b,c,d;
system("cls");
for(a=1;a=9;a)
for(b=0;b=9;b)
for(c=0;c=9;c)
{
if(100*a 10*b c==a*a*a b*b*b c*c*c)
printf("%d%d%d\n",a,b,c);
for(d=0;d=9;d)
if(1000*a 100*b 10*c d==a*a*a*a b*b*b*b c*c*c*c d*d*d*d)
printf("%d%d%d%d\n",a,b,c,d);
}
getch();
}
求采纳为满意回答 。
C语言编写一个秋水仙花数的函数 。求100到999之间的全部水仙花数 。#includeiostream
#includecmath
using namespace std;
int main()
{
int i,a,b,c;
for(i=100;i1000;i)
{
a=i/100;//取第一个数
b=(i-a*100)/10;//取第二个数
c=i-a*100-b*10;//取第三个数
if(i==a*a*a b*b*b c*c*c)//判断
{
coutiendl;//输出水仙花数
}
}
return 0;
}
【水仙花c语言自定义函数 水仙花c语言编程所有方法】关于水仙花c语言自定义函数和水仙花c语言编程所有方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读