为什么我的Pascal三角java代码不起作用?

时间:2017-05-01 15:52:56

标签: java arrays pascals-triangle

我的问题最近被搁置,所以我决定再问一次。

我的任务是我的教授希望我们在Java上制作Pascal的三角形。他为我们提供了一个完整的Main课程,该课程应该有效,我们必须使用它。我们不必编辑Main类。 Main类是正确的。它需要我们必须在代码中编写的方法。另外,我提供了正确的输出和Pascal类的模板,它具有我应该填写的方法。

这是主要课程:

 public class Main 
  {

  public static void main(String[] args) 
  {

    int n = args.length == 1 ? Integer.parseInt(args[0]) : 1;

    for (int i = 1; i <= n; ++i) 
    {
        int[] arr = Pascal.triangle(i);
        System.out.print((i < 10 ? " " : "") + i + ": ");
        for (int j : arr) 
        {
            System.out.print(j + " ");
        }
        System.out.println();
    }
 }
}

我的教授希望我们使用他的Pascal类模板,我们只需要在三角形方法的代码中编写。这是我们必须为作业编写代码的唯一区域。

 public class Pascal 
 {
   public static int[] triangle(int n) 
   {
     //My code goes here
     return new int[]{0};
   }
 }

输出应为:

 1: 1 
 2: 1 1 
 3: 1 2 1 
 4: 1 3 3 1 
 5: 1 4 6 4 1 
 6: 1 5 10 10 5 1 
 7: 1 6 15 20 15 6 1 
 8: 1 7 21 35 35 21 7 1 
 9: 1 8 28 56 70 56 28 8 1 
 10: 1 9 36 84 126 126 84 36 9 1 

这是我的Pascal类代码:

 public class Pascal
 {
   public static int[] triangle(int n) 
   {
   int [][] pt = new int[n+1][];

     for (int i = 0; i < n; i++) 
     {
     pt[i] = new int[i + 1];
     pt[i][0] = 1;//sets the position to 1
     pt[i][i] = 1;

      for (int j = 1; j < pt[i].length - 1; j++)
      {
       pt[i][j] = pt[i-1][j-1] + pt[i-1][j];
      }
 }
  return new int[]{0};
 }
} 

我的输出:

 1: 0 
 1: 10 
 1: 20 
 1: 1 
 1: 0 
 1: 0 

1 个答案:

答案 0 :(得分:1)

只需User.aggregate([ { "$unwind": "$rating" }, { "$lookup": { "from": "articles", /* collection name here, not model name */ "localField": "rating.articleID", "foreignField": "_id", "as": "article-origin" } }, { "$match": { "article-origin.user" : mongoose.Types.ObjectId(article.user) } }, { "$group": { "_id": "$_id", "avgRate": { "$avg": "$rating.rate" } } } ]).exec(function (err, result) { console.log(err); console.log(JSON.stringify(result)); }); 而不是模板中的新空数组(您应该删除该行)。

有了它,它对我有用,你的算法是正确的。