在pascal三角形中计算一行的总和?

时间:2012-09-29 13:28:27

标签: c++ math pascals-triangle

我一直在尝试用c ++计算pascal三角形中的第1500行总数。

我尝试了来自网络上的6个以上不同的代码段。

其中一些人在第10排之前坠毁,有些人疯了等等。

如何在pascal三角形中计算第1500行中的数字总数。

我认为必须有一个公式来找到一行而不迭代每一行,因为迭代会导致程序崩溃。

3 个答案:

答案 0 :(得分:4)

任何行中的数字总和等于2 ^ n,其中n是行(从0开始)。所以在你的情况下,它只是1 << 1499

enter image description here

您的回答如下:

  

17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688

答案 1 :(得分:3)

谷歌搜索显示来自wiki:

  

Pascal三角形的第n行中的条目总和是第n个   2的力量。

因此,您必须计算2 ^ 1500而不是尝试迭代所有行。

答案 2 :(得分:1)

pascal三角形的行和是1<<n,其中n是行号(基于零)。您的最终价值为1<<1499

所以你的程序neads显示1500位整数,这应该是主要问题。要生成二进制输出,请使用

printf("1"); 
for (int i=1;i<1500;i++) printf("0");
printf("\n");