【发布时间】:2013-07-01 20:51:42
【问题描述】:
如何将此代码转换为具有 n 个嵌套 for 循环:
int num = 4;
for (int i = 0; i <= num; i++)
{
for (int j = 0; j + i <= num; j++)
{
for (int k = 0; i + j + k <= num; k++)
{
for (int l = 0; i + j + k + l <= num; l++)
{
Console.WriteLine(i + " " + j + " " + k + " " + l);
}
}
}
}
因此,如果 num 为 2,则只有 2 个 for 循环; i 和 j。
这不是家庭作业,我希望反复完成。每个 Console.WriteLine() 都需要像一个元素一样存储在一起。
此程序的输出创建 n 维超空间指数。
【问题讨论】:
-
你需要让你的函数递归。有一个参数来指定还有多少嵌套循环要运行。当它为零时,做它的“thang”。 :-P 一旦我看到你第一次尝试,我很乐意提供进一步的帮助。 :-)
-
如果这是家庭作业,请注明,否则,您将通过陈述您的业务案例来帮助自己。
-
我可以看到很多方法来重写它,以便 num 是一个参数,但是如果不理解这个计算 意味着什么,很难给出代码在哪里的答案清楚地表达了意思。你能描述一下每个元组的确切含义,以及为什么需要它们的序列吗?
-
每个元组都是 n 维多项式的指数。因此,对于 num=2,程序输出具有 x 个变量的多项式的指数值列表;其中 x 是 for 循环的数量。示例:num = 2, 2 for 循环。我们正在尝试创建一个具有 2 个变量且最大次数为 2 的多项式:x^2*y^0+x^0*y^2+x^1*y^1+x^1*y^0+x ^0*y^1+x^0*y^0 对应上述多项式的输出为:{0 0} {0 1} {0 2} {1 0} {1 1} {2 0}
-
好的,这很有道理。
标签: c#