在Java中,尝试打印整数中的多少位数均匀分为整数

时间:2016-05-29 05:36:19

标签: java algorithm loops integer modulo

我试图打印整数中的多少位均匀分成整数。

使用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;
    }

}

编辑:它现在有效。

1 个答案:

答案 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分割。