#include<stdio.h>
#include<math.h>
int mypow(int m,int n)
{
int s=1,i;
for(i=1;i<=n;i++)
s*=m;
return s;
}
int myfabs(int n)
{
if(n<0) n=-n;
return n;
}
int hs(int n,int p)
{
if(n<10) return p;
if(n>=10)
{
n=n/10;
p++;
return hs(n,p);
}
}
int main()
{
int a[6];
int i,n,m,t,p,s,k=0;
printf("请任意输入输出数的范围,例如100 999\n");
scanf("%d %d",&n,&m);
m=myfabs(m);
n=myfabs(n);
if(n>m)
{
t=m;
m=n;
n=t;
}
for(n;n<=m;n++)
{
p=hs(n,1);
auto int sum=0;
s=n;
for(i=0;i<p;i++)
{
a[i]=s%10;
s=s/10;
sum+=mypow(a[i],p);
}
if(n==sum)
{
printf("%d\t",n);
k++;
}
}
if(k==0) printf("no resuit");
return 0;
}这是输出任意两数之间的正的水仙花数的代码,刚写的
#include<math.h>
int mypow(int m,int n)
{
int s=1,i;
for(i=1;i<=n;i++)
s*=m;
return s;
}
int myfabs(int n)
{
if(n<0) n=-n;
return n;
}
int hs(int n,int p)
{
if(n<10) return p;
if(n>=10)
{
n=n/10;
p++;
return hs(n,p);
}
}
int main()
{
int a[6];
int i,n,m,t,p,s,k=0;
printf("请任意输入输出数的范围,例如100 999\n");
scanf("%d %d",&n,&m);
m=myfabs(m);
n=myfabs(n);
if(n>m)
{
t=m;
m=n;
n=t;
}
for(n;n<=m;n++)
{
p=hs(n,1);
auto int sum=0;
s=n;
for(i=0;i<p;i++)
{
a[i]=s%10;
s=s/10;
sum+=mypow(a[i],p);
}
if(n==sum)
{
printf("%d\t",n);
k++;
}
}
if(k==0) printf("no resuit");
return 0;
}这是输出任意两数之间的正的水仙花数的代码,刚写的