我想要分割integer
,所以我可以判断它是否是 Dudeney数字和/或阶乘数字。我尝试了但感觉它可能更好,但不知道如何改进它。我试图解决的主要问题是为完成任务而编写的代码量。假设输入的数字是3579。
int number = input.nextInt();
double temp = number;
int counter = 0;
while(temp >1){
temp/=10;
counter++;
}
这段代码只是得到数字的长度,所以我可以使数组长度合适。
int[] numberSplitted = new int[counter];
int divisor = (int)Math.pow(10, (counter-1)); // = 1000 in this case
int locationInArray = 0;
while(divisor != 0){
int result = number / divisor; //result = 3579/1000 = 3;
number %= divisor; // number = 3579%1000 = 579;
divisor /= 10; // divisor = 100;
numberSplitted[locationInArray] = result;
locationInArray++;
}
答案 0 :(得分:0)
您可以将数字转换为String
并将其拆分为单个数字。完成此操作后,您可以使用for
循环并将String
数组的内容逐个转换为int
。
String[] stringNumber = Integer.toString(number).split("(?<=.)");
for(int i = 0; i < stringNumber.length; i++) {
numberSplitted[i] = Integer.valueOf(stringNumber[i]);
}