#include<stdio.h>
int sxh(int n)
{
int m;
printf("%d",n); //可以删除,用来测试是否读取n值
int a = (n / 1000000000) * (n % 1000000000);
int b = (n / 100000000) * (n % 100000000);
int c = (n / 10000000) * (n % 10000000);
int d = (n / 1000000) * (n % 1000000);
int e = (n / 10000) * (n % 10000);
int f = (n / 1000) * (n % 1000);
int g = (n / 100) * (n % 100);
int h = (n / 10) * (n % 10);
int sum = a + b + c + d + e + f + g + h;
if(n == sum)
{
return m = 1;
}
else
{
return m = 0;
}
}
int main()
{
int n;
int i;
printf("输入一个最大数,我会计算从1到他的变异水仙花数并判断他是否为变异水仙花数:");
scanf("%d",&n);
if(sxh(n))
{
printf("他是变异水仙花数");
}
else
{
printf("他不是变异水仙花数");
}
for (i = 1; i <= n; i++)
{
int a = (i / 1000000000) * (i % 1000000000);
int b = (i / 100000000) * (i % 100000000);
int c = (i / 10000000) * (i % 10000000);
int d = (i / 1000000) * (i % 1000000);
int e = (i / 10000) * (i % 10000);
int f = (i / 1000) * (i % 1000);
int g = (i / 100) * (i % 100);
int h = (i / 10) * (i % 10);
int sum = a + b + c + d + e + f + g + h;
if (i == sum)
{
printf("%d ", i);
}
}
return 0;
}