水仙花数
描述
春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。 现在要求输出所有在m和n范围内的水仙花数
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int m = sc.nextInt();
int n = sc.nextInt();
int ge = 0;
int shi = 0;
int bai = 0;
boolean flag = false;
for(int i = m; i <= n; i++){
ge = i % 10;
shi = i % 100 / 10;
bai = i /100;
if(i == ge*ge*ge + shi*shi*shi + bai*bai*bai){
System.out.print(i+" ");
flag = true;
}
}
if(!flag){
System.out.print("no");
}
}
}
变种水仙花数
描述
变种水仙花数 - Lily Number:把任意的数字,从中间拆分成两个数字,比如1461 可以拆分成(1和461),(14和61),(146和1),如果所有拆分后的乘积之和等于自身,则是一个Lily Number。
例如:
655 = 6 * 55 + 65 * 5
1461 = 1461 + 1461 + 146*1
求出 5位数中的所有 Lily Number。
代码
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int left = 0;
int right = 0;
int sum = 0;
for(int i =10000; i < 100000; i++){
sum = 0;
for(int j = 0; j < 5; j++){
left = i / (int)Math.pow(10,j);//10 的 j 次方
right = i % (int)Math.pow(10,j);
sum += left *right;
}
if(sum == i){
System.out.print(i + " ");
}
}
}
}