如何计算该表第m行的第n项?

时间:2015-02-22 17:20:01

标签: c++

有一个增长为

的表格
1,1
1,1,2
1,1,3,3
1,1,4,4,6
1,1,5,5,10,10
1,1,6,6,15,15,20
.....and so on

如果我想找到表格的特定元素,就像我想找到第6行的第4个元素那么答案将是6但是如果我想找到任何n> = 1 m的第m行的第n个元素; = 1然后怎么做?

2 个答案:

答案 0 :(得分:1)

这些数字看起来像二项式系数,所以这个"表"可以Pascal's triangle按行大小重新排序。

尽管如此,这只是无数多个表格中的一个"那就是这样开始的。如果您没有为特定的制作规则命名或以其他方式推断出" table"的任意值,那么就无法确定哪些无限多的"表& #34;你在这里。

答案 1 :(得分:0)

我假设您希望将值保存在某种表中,而不会浪费内存,例如为每行提供比所需更多的插槽。

为此,我建议使用矢量向量(假设您的值是整数):

std::vector< std::vector<int> > table;

如果你确定(m,n)的值存在,你可以得到它:

int value = table[m][n];

(注意m和n从0开始计算。)

如果您不确定使用更安全的

int value = table.at(m).at(n);

如果(m,n)不存在则抛出异常。

要添加一行,您可以调用

table.resize(table.size() + 1);

并向行添加列

table[m].resize(table[m].size() + 1);

我建议将表放入特殊类的protected或private部分,并添加函数以根据需要访问元素。