水仙花数和变种水仙花数

水仙花数

描述

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如: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 + " ");
            }
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_44125965/article/details/126182344