Calculer le total d'une ligne dans le triangle de pascal?
-
11-12-2019 - |
Question
J'ai essayé de calculer le total de 1500e ligne dans le triangle de pascal en c++.
J'ai essayé plus de 6 extraits de code sur le web.
Certains d'entre eux s'est écrasé avant les 10 rangs, certains de fou etc.
Comment peut-on atteindre le calcul total de numéros dans les 1500e ligne dans le triangle de pascal.
Je pense qu'il doit y avoir une formule pour trouver une ligne sans itération sur chaque ligne, car la itérations provoquant planter le programme.
La solution
La somme des nombres dans une ligne est égale à 2 ^ n
où n
est la ligne (en commençant à 0).Donc dans votre cas, il serait juste 1 << 1499
.
Votre réponse est la suivante:
17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688
Autres conseils
Une recherche Google révèle du wiki:
La somme des entrées de la nième rangée du triangle de Pascal est le nième pouvoir de 2.
Par conséquent, vous devez calculer 2 ^ 1500 au lieu d'essayer de itérer sur toutes les lignes.
La ligne de la somme du triangle de pascal est 1<<n
avec n étant le numéro de ligne (en partant de zéro).Votre valeur finale est 1<<1499
.
Si votre programme de neads pour afficher un 1500 bits entier, ce qui devrait être le problème principal.pour produire une sortie binaire, l'utilisation
printf("1");
for (int i=1;i<1500;i++) printf("0");
printf("\n");