链接:https://ac.nowcoder.com/acm/contest/5962/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位数中的所有 Lily Number,每两个数之间间隔一个空格。
#include<bits/stdc++.h> using namespace std; int main(){//看到题目说的所有5位数 要想到 用循环遍历 int a,b,c,d,e;// 5位数 从万位 往下 依次 for(a=1;a<10;a++){//一位题目给说了5位数 万位不能为0 for(b=0;b<10;b++){//剩余的四位 都可以为零 可以是 0到9中的任何一个数 所以要小于10 for(c=0;c<10;c++){//这样for循环 可以遍历 所有的5位数 for(d=0;d<10;d++){ for(e=0;e<10;e++){ if((a*(b*1000+c*100+d*10+e)+(a*10+b)*(c*100+d*10+e)+(a*100+b*10+c)*(d*10+e)+(a*1000+b*100+c*10+d)*e)==a*10000+b*1000+c*100+d*10+e){ cout<<a*10000+b*1000+c*100+d*10+e<<" ";//因为是输出一行 还是在循环种 所以 不需要加endl 如果加了 则输出一个后 则无法输出 } } } } } } return 0; }