前言
今天咱一起学习一下《变种的水仙花数》。
一、变种的水仙花数
题目来源:
描述
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1*461 + 14*61 + 146*1
求出 5位数中的所有 Lily Number。
输入描述:
无
输出描述:
一行,5位数中的所有 Lily Number,每两个数之间间隔一个空格。
二、分析问题
1.核心:拆数
可以看见,变种的水仙花数是拆开,然后组合的乘积和等于本身,那么我们就要想办法拆数了。
2.解题
代码如下(示例):
#include<stdio.h> int main() { int a = 0; int b = 0; int c = 0; int d = 0; for (int i =10000; i < 99999; i++) //五位数 { a = (i / 10000)* (i % 10000); //分别拆出各组组合 b = (i / 1000)* (i % 1000); c = (i / 100)* (i % 100); d = (i / 10)* (i % 10); if (i ==(a+b+c+d)) { printf("%d ", i); } } return 0; }
本题一定要熟练运用除法和求余数来得出自己需要的数字。
总结
以上就是今天要讲的内容,本文仅仅简单介绍了变种的水仙花数的解题方法,如有错误请指正,谢谢~