任何方式找出"美丽的数字"

时间:2014-06-08 17:34:19

标签: java android numbers

漂亮的数字是仅包含一种数字的数字,例如:0444555553333

我想写一个Android应用程序,找出一个数字是否漂亮。

2 个答案:

答案 0 :(得分:3)

public static boolean isBeautiful(int n) {
    char targetDigit = String.valueOf(n).toCharArray()[0];
    for (char currentDigit : String.valueOf(n).toCharArray()) {
        if (targetDigit != currentDigit) {
            return false;
        }
    }
    return true;
}

奖金(对于奖金的延迟添加感到抱歉,但现在就是这样),这里有如何让所有美女都达到x:

public static List<Integer> getBeautifuls(int upTo) {
    List<Integer> beautifuls = new ArrayList<>();
    int next = 0;
    while (upTo >= next) {
        beautifuls.add(next);
        if (String.valueOf(next).toCharArray()[0] == '9') {
            next = Integer.valueOf(new String(new char[String.valueOf(next).length() + 1]).replace("\0", "1"));
        } else {
            next = next + Integer.valueOf(new String(new char[String.valueOf(next).length()]).replace("\0", "1"));
        }
    }
    return beautifuls;
}

基于user102008的重复字符串算法在这个问题上的出色答案:Simple way to repeat a String in java

注意:使用String来创建int s有点破解并且不是那么快。

答案 1 :(得分:1)

尝试检查该数字的位数,例如该数字有5位数(介于10000-99999和&gt; = 11111之间)

 if(num % 11111 == 0){
     //it is beautiful number
 }else{
     //it is not beautiful 
 }

这只是5位数字的示例。您可以开发一种算法来检查其他数字。我不知道之前是否创建过任何算法。