首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中的偶数三角形

java中的偶数三角形
EN

Stack Overflow用户
提问于 2018-10-21 01:57:12
回答 2查看 332关注 0票数 -2

我怎样才能做出同样的三角形,但有偶数和空格?如何才能生成不受任何限制的偶数,并适应用户输入的行数(用户只输入行数,而不限制生成偶数或奇数)

代码语言:javascript
复制
int num = 5;
int cont = 0;
for (int i = 1; i <= num; i ++) {
cont + = 2;
    for (int j = 0; j <num-i; j ++) {
    System.out.print ("");
}
    for (int k = i; k <cont; k ++) {
        System.out.print (k);
    }
    for (int l = i; l <cont-1; l ++) {
        System.out.print (l);
    }

System.out.println ("");
}

此程序的运行方式为:

代码语言:javascript
复制
    1
   232
  34543
 4567654
567898765

我想要的,但他怎么能做到呢?

代码语言:javascript
复制
     2
    4 6
  8 10 12
14 16 18 20
EN

回答 2

Stack Overflow用户

发布于 2018-10-21 02:14:10

如果我没理解错的话,这很简单,但是在数字5之后,数字将会彼此相连,所以如果你想避免这种情况,你必须为你打印的每个数字使用2到3个空格。可以使用以下命令创建主三角形:

代码语言:javascript
复制
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int row = in.nextInt();
    int allSpace = 2 * row - 1;
    for (int i = 1; i <= row; i++) {
        int allNumber = 2 * i - 1;
        for (int j = 0; j < (allSpace - allNumber) / 2; j++) {
            System.out.print("   ");
        }
        for (int j = 1; j <= allNumber ; j++) {
            System.out.printf("%3d", j);
        }
        for (int j = allNumber - 1; j >= i ; j--) {
            System.out.printf("%3d", j);
        }
        System.out.println();
    }
}

但是对于偶数,你可以这样做:

代码语言:javascript
复制
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    int row = in.nextInt();
    int allSpace = 2 * row - 1;
    int even = 2;
    for (int i = 1; i <= row; i++) {
        int allNumber = 2 * i - 1;
        for (int j = 0; j < (allSpace - allNumber) / 2; j++) {
            System.out.print("   ");
        }
        for (int j = 1; j <= allNumber ; j++) {
            System.out.printf("%3d", even);
            even += 2;
        }
        System.out.println();
    }
}

我没弄错吧?

票数 0
EN

Stack Overflow用户

发布于 2018-10-21 02:16:59

这有点棘手,因为数字的数量会稍微影响对齐。

这将会起作用:

代码语言:javascript
复制
    int num = 5;
    int cont = 0;
    for (int i = 1; i <= num; i++) {
        for(int k = 1; k <= num -i; k++) System.out.print(" ");
        for(int j = 1; j <= i; j++) {
            cont += 2;
            System.out.print(cont + " ");
        }

    System.out.println ("");
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52908548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档