1.什么是变种水仙花数
变种水仙花数即
Lily Number:把任意的数字,拆分成两个数字,例如23610
可以拆分成(2和 3610)
,
(
23
和
610
)
,
(
236
和10),
(
2361
和
0),如果所有拆分后的乘积之和等于自身,则是一个
Lily Number.
例如:23610=2*3610+23*610+236*10+2361*03442=3*442+34*42+344*2
水仙花数详见另一篇博客,此处传送门 水仙花数
2.代码展示
以下是代码 求100-999之间的水仙花数:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int i = 0;
for (i = 10; i <= 99999; i++)
{
int j = 0;
int num = 0;
for (j = 10; j <= 10000; j *= 10)
{
num += (i % j) * (i / j);
}
if (num == i)
printf("%d ", i);
}
return 0;
}
运行结果如下图所示:
想要求其他区间变种水仙花数,直接修改for循环中:表达式一i的初始值和表达式二的循环条件即可。
ps:欢迎大家在评论区留言,阐述您的观点和疑问