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

我尝试了网络上超过 6 个不同的代码片段。

他们中的一些人在第十排之前就崩溃了,一些人发疯了等等。

如何实现计算帕斯卡三角形第1500行的数字总数。

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

有帮助吗?

解决方案

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

enter image description here

您的答案如下:

17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688

其他提示

Google搜索从Wiki显示:

帕斯卡尔三角形的第n行中的条目的总和是第n 功率为2。 因此,您必须计算2 ^ 1500,而不是尝试迭代所有行。

帕斯卡尔三角形的行和是具有n个是行号的生成播放代码(基于零)。您的最终值是1<<n

因此您的程序NEADS显示1500位整数,应该是主要问题。要生成二进制输出,请使用

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top