我试图打印整数中的多少位均匀分成整数。
使用mod 10,我得到整数的最后一位,然后除以10除去最后一位数,最后用最后一位数修改整数,检查每个数字是否可以整数整数。出于某种原因,我收到了错误(https://repl.it/CWWV/15)。
任何帮助将不胜感激!
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int singleD, n1;
int counter = 0;
int t = in.nextInt();
for(int a0 = 0; a0 < t; a0++){
int n = in.nextInt();
n1 = n;
while (n1 > 0){
singleD = n1%10;
n1 /= 10;
if(singleD != 0 && n%singleD == 0){
counter++;
}
}
System.out.println(counter);
counter = 0;
}
}
编辑:它现在有效。
答案 0 :(得分:2)
我会使用String.valueOf(int)
然后将其转换为字符数组。接下来,我将使用for-each
loop迭代每个字符并将其解析回一个数字,以便测试余数 1 是否为0
来自除法使用原始int
,如果是这样,则增加一个计数器。最后,显示计数。像,
Scanner in = new Scanner(System.in);
int counter = 0;
int t = in.nextInt();
for (char ch : String.valueOf(t).toCharArray()) {
if (ch != '0' && t % Character.digit(ch, 10) == 0) {
counter++;
}
}
System.out.println("count = " + counter);
1 记住要测试0
以防止0
分割。