我的问题最近被搁置,所以我决定再问一次。
我的任务是我的教授希望我们在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
答案 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));
});
而不是模板中的新空数组(您应该删除该行)。
有了它,它对我有用,你的算法是正确的。