Java 按奇数顺序打印奇数

Java 按奇数顺序打印奇数,java,formatting,Java,Formatting,我的编程课上有一个问题,我不能正确理解。。。输出必须是所有奇数,以每行奇数表示,直到每行的数字量满足输入的奇数为止。例如: 输入:5 正确输出: 1 3 5 7 9 11 13 15 17 如果输入的数字为偶数或负数,则用户应输入不同的数字。这就是我到目前为止所做的: publicstaticvoidfirstnum(){ 扫描仪kb=新扫描仪(System.in); int num=kb.nextInt(); 如果(数值%2==0 | |数值System.out.print(val.getA

我的编程课上有一个问题,我不能正确理解。。。输出必须是所有奇数,以每行奇数表示,直到每行的数字量满足输入的奇数为止。例如:

输入:
5
正确输出:

1
3 5 7
9 11 13 15 17
如果输入的数字为偶数或负数,则用户应输入不同的数字。这就是我到目前为止所做的:

publicstaticvoidfirstnum(){
扫描仪kb=新扫描仪(System.in);
int num=kb.nextInt();
如果(数值%2==0 | |数值<0)
firstNum();
如果(数量%2==1)
for(int i=0;i
public static void firstNum() {
    Scanner kb = new Scanner(System.in);
    int num = kb.nextInt();
    while (num % 2 == 0 || num < 0) {
        num = kb.nextInt();
    }
    int odd = 1;
    for (int i = 1; i <= num; i += 2) {
        String a = "";
        for (int j = 1; j <= i; j++) {
            a = odd + " ";
            odd += 2;
            System.out.print(a);
        }
        System.out.println();
    }
}
publicstaticvoidfirstnum(){
扫描仪kb=新扫描仪(System.in);
int num=kb.nextInt();
而(数值%2==0 | |数值<0){
num=kb.nextInt();
}
int奇数=1;
对于(int i=1;i
if(num%2==1){
int奇数=1;
}
for(int i=0;i对于(int j=1;j似乎我发布有点晚,以下是我的解决方案:

publicstaticvoidfirstnum(){
扫描仪=新的扫描仪(System.in);
System.out.println(“输入奇数:”);
int num=scanner.nextInt();
如果(数值%2==0 | |数值<0){
firstNum();
}
如果(数量%2==1){
int-disNum=1;

对于(int i=1;i对于这样的问题,通常不需要使用和条件语句。您的学校可能不希望您也使用字符串。您可以在一对循环中控制所有内容

这是我的解决方案:

int size=7;//大小取自用户的输入
int-val=1;
int行=(大小/2)+1;
对于(int x=0;x
打印1列
  • 第二行
    ->
    打印3列
  • 第三行
    ->
    打印5列
  • 第四行
    ->
    打印7列,依此类推
  • 我们观察到,之间的关系实际上是:
    列=(行*2)+1


    因此,我们有:
    y您可以使用两个嵌套循环(或流),如下所示:一个外部循环通过奇数个元素的行,一个内部循环通过这些行的元素。内部操作是按顺序打印并增加一个值

  • 循环中的循环
    int n=9;
    int-val=1;
    //用奇数循环遍历行
    //元素数:1、3、5。。。
    对于(int i=1;i+2)
    //迭代行中的元素
    .peek(i->IntStream.range(0,i)
    //打印当前值并增加它
    .forEach(j->System.out.print(val.getAndAdd(2)+“”)
    //新线
    .forEach(i->System.out.println());
    
  • 输出:

    1 
    3 5 7 
    9 11 13 15 17 
    19 21 23 25 27 29 31 
    33 35 37 39 41 43 45 47 49 
    

    另请参见:

    备注:我省略了代码,以检查输入编号是否为奇数,以确保代码的清晰性,我认为您对该部分没有问题,因此已将其省略。
    public static void firstNum() {
        Scanner kb = new Scanner(System.in);
        int num = kb.nextInt();
        while (num % 2 == 0 || num < 0) {
            num = kb.nextInt();
        }
        int odd = 1;
        for (int i = 1; i <= num; i += 2) {
            String a = "";
            for (int j = 1; j <= i; j++) {
                a = odd + " ";
                odd += 2;
                System.out.print(a);
            }
            System.out.println();
        }
    }
    
    1 
    3 5 7 
    9 11 13 15 17 
    19 21 23 25 27 29 31 
    33 35 37 39 41 43 45 47 49 
    
    1 
    3 5 7 
    9 11 13 15 17 
    19 21 23 25 27 29 31 
    33 35 37 39 41 43 45 47 49