Java程序打印所有奇数整数,最多N个,每行打印10个整数

时间:2018-03-08 01:52:25

标签: java for-loop while-loop

我的程序有点麻烦。我已经编写了用户验证,我可以将所有奇数打印到用户输入的内容。我的问题是试图在每一行得到10个整数。显然,我尝试了i%10 == 0技术,因为你知道奇数不能有零余数。如果你能给出一些很棒的提示或指导!

import java.util.*;

public class Question {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int n;
        System.out.print("Please enter a number. ");
        n = input.nextInt();

        while(n < 0 || n > 1000){
           System.out.print("Error: 0 <= N <= 1000. Reenter.");
           n = input.nextInt();
         }

        for(int i = 1; i <= n; i+=1) {
            System.out.print(" " + i);
            if(i % 10 == 0)
             System.out.print("\n");
        }
    }

}

2 个答案:

答案 0 :(得分:2)

以下逻辑似乎有效:

for (int i=1; i <= n; i+=1) {
    if (i % 2 == 1)
        System.out.print(" " + i);
    if (i % 20 == 0)
        System.out.print("\n");
}

这里的基本思想是(i % 2 == 1)条件仅打印奇数,而(i % 20 == 0)十个数字都会添加换行符。我们使用mod 20的原因是每20个计数数字有十个奇数。

Demo

答案 1 :(得分:0)

这就是我提出的

int count = 0;
for(int i = 1; i <= n; i+=1) {
    if (i % 2 == 1){
     System.out.print(" " + i);
     count += 1;
     continue;}

    if(count % 10 == 0)
     System.out.print("\n");
}

添加一个仅在打印奇数时才会增加的计数意味着您可以测试它是否可以被10整除。