• 0

كيف أحل هذا النوع من مثلث باسكال باستخدام بايثون؟

أريد حل هذا التمرين باستخدام حلقات while فقط، فكيف أستطيع فعل ذلك؟

13620913_1818515491712257_3134824509954142924_n.jpg

التمرين عبارة عن مثلث باسكال من نوع خاص.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

إليك هذا الحل:

n = 4
i = 1
while i <= n:
	j = n-i
	while j != 0:
		print " ",
		j -= 1

	j = 1
	while j < i:
		print i-j+1,
		j += 1
	j = 1
	while j <= i:
		print j,
		j += 1
	print ""
	i +=1

حيث n هو عدد الأسطر الذي تريدها.

البرنامج عبارة عن حلقة while كبيرة حيث تقوم بطابعة كل سطر وفي داخلها ثلاثة حلقات الأولى لوضع المسافات المناسبة حتى يظهر شكل المثل والثانية لطباعة الأرقام بطريقة تنازلية وأما الثالث فتطبع الأرقام بطريقة تصاعدية.

يمكنك استخدام حلقات for وسيكون الأمر أقصر وأسهل بكثير.

n = 4

for i in range(1, n+1):
	for j in range(n-i):
		print " ",

	for j in range(1, i):
		print i-j+1,

	for j in range(1, i+1):
		print j,
	print ""

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تفضل

i, s = 1, ""
while i <= 4:
    s += str(i)
    print (" " * (4-i))+s[::-1]+s[1:]
    i += 1

عمل تكرار الى 4 وجمع الارقام بجانب بعضها في s لينتج عن كل عملية تكرار

1
12
123
1234

ومن ثم طباعة s مع معكوسة لينتج

1
212
32123
4321234

وبقي صنع المسافات لتشكل المثلث حيث تتم تكرار المسافة عن كل عملية بالمعادلة

(" " * (4-i))

 حيث يتم وضع مسافة اقل عن سابقتها بمقدار واحد عند كل عملية

وسينتج

   1
  212
 32123
4321234

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن