سؤال

لقد كنت أحاول حساب إجمالي الصف 1500 في مثلث باسكال في C++.

لقد جربت أكثر من 6 مقتطفات برمجية مختلفة من جميع أنحاء الويب.

بعضهم تحطم قبل الصف العاشر، وبعضهم أصيب بالجنون وما إلى ذلك.

كيف يمكن تحقيق حساب إجمالي الأرقام في الصف 1500 في مثلث باسكال.

أعتقد أنه يجب أن تكون هناك صيغة للعثور على صف دون التكرار على كل صف، لأن التكرارات تسبب تعطل البرنامج.

هل كانت مفيدة؟

المحلول

مجموع الأرقام في أي صف يساوي 2 ^ n أين n هو الصف (يبدأ من 0).لذلك في حالتك، سيكون الأمر كذلك 1 << 1499.

enter image description here

إجابتك هي التالية:

17537331055217019373813793980140428996762007940165414412037899012395481925281661101828540443292484630826575203397718758699647274470734979877085519459002350423944978242664548632243401355791731473268341092170069314725677729132473171262691809694657480322332526275875721167754624586680565177898054854942790337156977105108828923716313380366502376637658596066837351781686391648520996613526331666834254976000087526677764529440217091269193357761841856604274688

نصائح أخرى

بحث Google يكشف من Wiki:

مجموع الإدخالات في صف nth من مثلث باسكال هو 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