美文网首页
HDU 2097 Sky数

HDU 2097 Sky数

作者: itbird01 | 来源:发表于2022-04-05 00:07 被阅读0次

    Problem Description
    Sky从小喜欢奇特的东西,而且天生对数字特别敏感,一次偶然的机会,他发现了一个有趣的四位数2992,这个数,它的十进制数表示,其四位数字之和为2+9+9+2=22,它的十六进制数BB0,其四位数字之和也为22,同时它的十二进制数表示1894,其四位数字之和也为22,啊哈,真是巧啊。Sky非常喜欢这种四位数,由于他的发现,所以这里我们命名其为Sky数。但是要判断这样的数还是有点麻烦啊,那么现在请你帮忙来判断任何一个十进制的四位数,是不是Sky数吧。

    Input
    输入含有一些四位正整数,如果为0,则输入结束。

    Output
    若n为Sky数,则输出“#n is a Sky Number.”,否则输出“#n is not a Sky Number.”。每个结果占一行。注意:#n表示所读入的n值。

    Sample Input

    2992 1234 0

    Sample Output

    2992 is a Sky Number. 1234 is not a Sky Number.

    java code

    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            // 用hasnextint,不然会error
            while (scanner.hasNextInt()) {
                int n = scanner.nextInt();
                if (n == 0) {
                    break;
                }
                if (isSky(n)) {
                    System.out.println(n + " is a Sky Number.");
                } else {
                    System.out.println(n + " is not a Sky Number.");
                }
            }
            scanner.close();
        }
        // 判断素数的方法
        public static boolean isSky(int n) {
            int number = n % 10 + n / 10 % 10 + n / 100 % 10 + n / (10 * 10 * 10);
            int number1 = n % 16 + n / 16 % 16 + n / 256 % 16 + n / (16 * 16 * 16);
            int number2 = n % 12 + n / 12 % 12 + n / 144 % 12 + n / (12 * 12 * 12);
            if (number == number1 && number == number2 && number1 == number2) {
                return true;
            } else {
                return false;
            }
        }
    
    }```

    相关文章

      网友评论

          本文标题:HDU 2097 Sky数

          本文链接:https://www.haomeiwen.com/subject/ztbtsrtx.html