Я пытался вычислить общее количество 1500-й строки в паскальском треугольнике в C ++.
Я перепробовал более 6 различных фрагментов кода со всей сети.
Некоторые из них разбились до 10-го ряда, некоторые сошли с ума и т.д.
Как можно рассчитать общее количество чисел в 1500-м ряду в паскальском треугольнике.
Я думаю, что должна быть формула для поиска строки без итерации по каждой строке, потому что итерации вызывают сбой программы.
Сумма чисел в любой строке равна 2 ^ n
где n
это строка (начиная с 0). Так что в вашем случае это было бы просто 1 << 1499
,
Ваш ответ следующий:
17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688
Поиск в Google показывает из вики:
Сумма записей в n-й строке треугольника Паскаля равна n-й
сила 2.
Следовательно, вы должны вычислить 2 ^ 1500 вместо того, чтобы пытаться перебрать все строки.
Строка-сумма паскаль треугольника 1<<n
где n — номер строки (с нуля). Ваше окончательное значение 1<<1499
,
Таким образом, ваша программа должна отображать 1500-битное целое число, что должно быть основной проблемой. чтобы получить двоичный вывод, используйте
printf("1");
for (int i=1;i<1500;i++) printf("0");
printf("\n");