Вычисление общего количества строк в треугольнике Паскаля?

StackOverflow https://stackoverflow.com//questions/12653087

  •  11-12-2019
  •  | 
  •  

Вопрос

Я пытался вычислить общее количество 1500-й строки в треугольнике pascal на c++.

Я перепробовал более 6 различных фрагментов кода со всего Интернета.

Некоторые из них разбились перед 10-м рядом, некоторые сошли с ума и т.д.

Как можно добиться вычисления общего количества чисел в 1500-й строке в треугольнике Паскаля?

Я думаю, что должна быть формула для поиска строки без перебора каждой строки, потому что итерации приводят к сбою программы.

Это было полезно?

Решение

Сумма чисел в любой строке равна 2 ^ n где n — это строка (начиная с 0).Так что в вашем случае это будет просто 1 << 1499.

enter image description here

Ваш ответ следующий:

17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688

Другие советы

Поиск Google раскрывается из Wiki:

сумма записей в nth ряд треугольника Pascal это nth мощность 2.

Следовательно, вы должны рассчитать 2 ^ 1500 вместо того, чтобы пытаться повторить во всех рядах.

Сумма строк треугольника Паскаля равна 1<<n где n - номер строки (основанный на нуле).Ваше конечное значение равно 1<<1499.

Таким образом, ваша программа должна отображать 1500-битное целое число, что должно быть основной проблемой.чтобы получить двоичный вывод, используйте

printf("1"); 
for (int i=1;i<1500;i++) printf("0");
printf("\n");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top