首页 > 试题广场 >

变种水仙花

[编程题]变种水仙花
  • 热度指数:67905 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

变种水仙花数 - 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,每两个数之间间隔一个空格。
头像 计算机红利
发表于 2021-10-12 14:31:25
#include<stdio.h> int main() { int i,j; for(i=10000;i<99999;i++) { int sum=0; for(j=10;j<=10000;j=10*j) 展开全文
头像 强颜悲伤
发表于 2021-03-20 10:53:22
像这种题目,用常规思路做太浪费时间了,还不如试试打表的方式,又快又方便 #include <bits/stdc++.h>//万能头文件(耍帅用的) using namespace std; int main() { printf("14610 16420 23610 34420 展开全文
头像 小旺不正经
发表于 2020-04-12 22:03:40
直接简单暴力 #include <stdio.h> int main() { int i; for(i=10000;i<100000;i++) { if(i==((i/10000)*(i%10000))+((i/1000)*(i%1000)) 展开全文
头像 牛客题解官
发表于 2020-06-04 16:19:36
分析: 根据题意,对于每次拆分得到除数和余数,然后将其相乘累加即可,最后判断累加值和当前数值是否相同即可。对于拆分方法可以先设定求余数mod,然后每次对其除10,模仿拆分过程直到该值为0。 题解: #include <bits/stdc++.h> using namespace std; 展开全文
头像 起名字太难了吧
发表于 2021-10-09 09:51:50
int main() { int i = 0; for(i=9999;i<=99999;i++) { int a=i/10000; int a1 = i%10000; int b=i/1000; int b 展开全文
头像 云梦士
发表于 2021-10-16 22:21:56
public class Main{ public static void main(String[] args) { for(int num = 10000; num < 100000; num++) {//暴力遍历即可 int sum = 0 展开全文
头像 王冠与高跟鞋
发表于 2022-01-08 14:30:46
变种水仙花,分享一下我的笨方法 #include<stdio.h> int main() {     int num=0;        //这是记录打印次数的,可能是题目写错了吧.没用上   展开全文
头像 哈哈~柳暗花明
发表于 2020-05-06 15:35:20
ll = [] for num in range(10000, 99999): sum = 0 for j in range(1, 5): sum += int(str(num)[:j])*int(str(num)[j:]) if sum == num: 展开全文
头像 bcxp
发表于 2021-08-11 19:02:40
public class Main{ public static void main(String args[]){ /* //笨方法 for(int i=10000;i<100000;i++){ int a=i/10000; i 展开全文
头像 Zerone·
发表于 2022-05-21 20:27:06
#include<stdio.h> int main() {     int val = 0, temp1, temp2;     for (int i = 10000; i <= 99999; i++) {  //计算5位数中的所 展开全文