漂亮的数字是仅包含一种数字的数字,例如:0
,4
,44
,55555
,3333
。
我想写一个Android应用程序,找出一个数字是否漂亮。
答案 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位数字的示例。您可以开发一种算法来检查其他数字。我不知道之前是否创建过任何算法。