给你A和B,求[A,B]区间内有多少个水仙花数 输入描述: 两个整数,用空格隔开,保证数字

发布时间:2020-07-21 13:47:31 作者:朱怀宽
来源:网络 阅读:621

       
给你A和B,求[A,B]区间内有多少个水仙花数
  输入描述:
   两个整数,用空格隔开,保证数字都小于等于1000000,否则返回0
  输出描述:
   一个数字,表示[A,B]区间内的水仙花数个数


分析得分点:

        1、输入以空格隔开的两数字(需要解析,去空格)

        2、数字要小于等于1000000,否则返回0

        3、水仙花数的数字位数不确定


具体实现:

package demo;
/**
 * @Author 小猪上天
 * @Email zhuhuaikuan@gmail.com
 * @Data 2019/11/5  14:51
 * @Version V1.0
 * @description
 */
import java.util.Scanner;
/**
 * 给你A和B,求[A,B]区间内有多少个水仙花数
 * 输入描述:
 *  两个整数,用空格隔开,保证数字都小于等于1000000,否则返回0
 * 输出描述:
 *  一个数字,表示[A,B]区间内的水仙花数个数
 *
 */
public class demo1 {
    public static void main(String[] args) {
        String[] input = new Scanner(System.in).nextLine()
                                    .split(" ");
        int a =  Integer.parseInt(input[0]);
        int b = Integer.parseInt(input[1]);
        if(a>b){      //判断输入两数字大小顺序
            a=a+b;
            b=a-b;
            a=a-b;
        }
//        System.out.println(a);
//        System.out.println(b);
        if(b>1000000){     //数字大于1000000返回0
            System.out.println(0);
            return;
        }
        int count=0;
        for(int number=a;number<=b;number++){
            int temp = number;
            int sum = 0;
            for(int i=0;i<GetLength(number);i++){
                sum += Math.pow(temp % 10, GetLength(number));//次方和相加
                temp = temp / 10;
            }
            if (sum == number) {//判断是否相等
                count++;
            }
        }
        System.out.println(count);
    }
    static int GetLength(int number){   //分析数字的具体位数
        int i = 0;
        while (number / 10 > 0) {
            i++;
            number /= 10;
        }
        return i + 1;
    }
}


推荐阅读:
  1. Java 嵌入 SPL 轻松实现数据分组
  2. 不改一行代码定位线上性能问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java 水仙花数 给你

上一篇:什么是keygen

下一篇:IDEA2020如何打开Run Dashboard

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》