首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >递归数三角形

递归数三角形
EN

Stack Overflow用户
提问于 2018-03-09 10:49:06
回答 3查看 155关注 0票数 2

我在尝试将正确的数字放在正确的位置时遇到了困难,我的想法似乎是正确的,但打印是错误的。

代码语言:javascript
复制
    static int plotTri1(int n, int i) {
    if (n > 0) {
        plotTri1(n - 1, n + i);
        i += n;
        for (; 0 < n; n--) {
            System.out.printf("%3d", (i--));
        }
        System.out.println();
    }
    return n;
}

我当前的解决方案打印出以下内容:

代码语言:javascript
复制
Given n = 5 and i = 0
  15
  14 13
  12 11 10
  9  8  7  6
  5  4  3  2  1

所需的解决方案是:

代码语言:javascript
复制
Given n = 5 and i = 0
  1
  3  2
  6  5  4
  10  9  8  7
  15 14 13 12 11

寻找将引导我找到所需解决方案的帮助

EN

回答 3

Stack Overflow用户

发布于 2018-03-09 11:19:15

为什么要使用递归函数?

代码语言:javascript
复制
static void plotTri2(int n) {
    int k=1 ;
    for (int i=0; i<n; i++) {
        for (int j=0; j<=i; j++) {
            System.out.printf("%3d",  new Object[] {new Integer(k-j)} );
        }
        k+= i+2 ;
        System.out.println("");
    }
}

plotTri2(5);

票数 1
EN

Stack Overflow用户

发布于 2018-03-09 11:13:07

这是一种对我有效的方法。其基本思想是递归地从每一行中的起始数字到该行中的最后一个数字进行打印。

代码语言:javascript
复制
public static void triangle(int n, int num) {
    if (n == 0) return;
    triangle(n - 1, num - n);
    System.out.println("\n");
    for (int i=0; i < n; ++i) {
        if (i > 0) System.out.print(" ");
        System.out.print(num - i);
    }
}

public static void main(String args[]) {
    triangle(5, 15);
}

Demo

票数 0
EN

Stack Overflow用户

发布于 2018-03-10 23:07:39

让前一个调用返回一些东西怎么样?这里有一个想法:

代码语言:javascript
复制
static int[] f(int n){
    if (n == 0){
        int[] firstRange = new int[]{1,1};
        return firstRange;
    }

    int[] range = f(n - 1);

    for (int i=range[0]; i<=range[1]; i++) {
        System.out.printf("%3d", i);
    }
    System.out.println();

    int[] nextRange = new int[]{range[1] + 1, 2 * range[1] - range[0] + 2};
    return nextRange;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49185845

复制
相关文章

相似问题

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