我一直致力于根据某些4 digit number
确定parameters
的计划。
我尝试实施的parameters
之一就是int
的数字无法重复,而且我已经开始拥有麻烦。
到目前为止,这是我的代码:
public class FourDigit {
public static void main(String[] args) {
int poss = 0;
//counts from 1000 to 3999
for (int counter = 1000; counter < 4000; counter++)
{
// Makes sure the number is divisible by 10 and 5
if (counter % 5 == 0 && counter % 10 == 0)
{
// Prints and counts all of the possibilities
System.out.print(counter + " ");
poss++;
}
// What I've been trying...
String string = Integer.toString(counter);
if (string.substring(1,2) == string.substring(2,3))
System.out.println("Hello");
}
System.out.println(poss);
}
}
P.S。 println
是暂时的,只是为了检查它是否有效。
数字必须介于1000和4000之间,不能以0开头,并且必须以0结尾。此外,第二个数字必须是偶数,并且不允许重复。
谢谢,Dccciz:)
答案 0 :(得分:3)
如果您确定该数字是4位数,请按照这种方式进行。
int d1,d2,d3,d4;
d1 = num % 10;
num /= 10;
d2 = num % 10;
num /= 10;
d3 = num % 10;
num /= 10;
d4 = num % 10;
你也可以把它放在一个数组中,该数组用你在for循环中调用的函数编写:
private int[] splitDigits(int num){
int n = num; //making a copy for not rowen the num we got
int[] arr = new int[4];
int i = 0;
while (i < 4){
arr[i++] = n % 10;
n /= 10;
}
return arr;
}
修改强>
现在您可以在for循环中调用此函数:
for (int counter = 1000; counter < 4000; counter++) {
int[] digits = splitDigits(counter);
.
.
}
答案 1 :(得分:0)
使用String方法最容易解决,只需要一行:
boolean hasRepeats = Integer.toString(number).matches(".*(.).*\\1.*");