【C语言】变种水仙花数求解
题目:
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1461 + 1461 + 146*1
求出 5位数中的所有 Lily Number。
问题的关键:
将一个5位数拆分成两个数,用到 / 和 % 两种运算
例如:
具体的代码实现:
#include <stdio.h>
int main() {
int a=0;
int sum=0;//累加拆分后相乘的结果
for(int a=10000;a<=99999;a++)//a为每一个五位数
{
sum=0;//将sum的值重置为0
for(int i=10;i<=10000;i*=10)
{
sum+=(a/i)*(a%i);//将每一个五位数进行拆分并相乘相加
}
if(sum==a)//如果拆分后相乘相加的结果等于自身,则为水仙花数,输出
{
printf("%d ",sum);
}
}
return 0;
}
注释:
该专栏给大家分享经典的C语言编程题目,有源码!每日在更,喜欢的朋友关注一下吧!
上一篇:打印任意范围内的水仙花数https://blog.youkuaiyun.com/qq_63188326/article/details/128411808