• 0
أحمد أبو عبد البر

نتيجة السؤال الحادي عشر -11-

سؤال

سلام عليكم

 

كان السؤال الحادي عشر ما نصه :

متجر يبيع العسل في عبوات ، يبيعه بالعبوة الواحدة أو بصندوق سعته عبوتان أو بصندوق سعته خمس عبوات أو بصندوق سعته عشر عبوات أو بصندوق سعته عشرون عبوة أو بصندوق سعته خمسون عبوة  أو بصندوق سعته مئة عبوة أو بصندوق سعته مئتا عبوة

 

إذا طلب زبون 200 عبوة عسل فإحدى طرق البيع ان نعطيه :

صندوقا من سعة 50 عبوة

وصندوقا من سعة 100 عبوة

وصندوقين من سعة 20 عبوة

وصندوقا من سعة 10 عبوات

 

كم طريقة يمكن أن نبيع بها العسل لهذا الزبون

 

والجواب هو 73682

 

وقد أجاب عنه :

 

مصطفى

 

الحل الذي كتبته أنا كان عن طريق الحلقات المتداخلة وهذا هو

public class Test    {        public static void main ( String[] arg )            {                int count = 0;                for( int i = 0 ; i <= 200 ; i ++ )                    {                        for( int j = 0 ; j <= 200 ; j += 2 )                            {                                for( int e = 0 ; e <= 200 ; e += 5 )                                    {                                        for( int r = 0 ; r <= 200 ; r += 10 )                                            {                                                for( int t = 0 ; t <= 200 ; t += 20 )                                                    {                                                        for( int y = 0 ; y <= 200 ; y += 50 )                                                            {                                                                for( int u = 0 ; u <= 200 ; u += 100 )                                                                    {                                                                        for( int o = 0 ; o <= 200 ;                                                                             o += 200 )                                                                            {                                                                                if( ( i + j + e + r + t + y + u + o ) == 200 )                                                                                    {                                                                                        count ++;                                                                                    }                                                                            }                                                                    }                                                            }                                                    }                                            }                                    }                            }                    }                System.out.println ( count );            }}

حل الأخ مصطفى كان أفضل في انتظاره

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

وهذا حل الأخ مصطفى

//الحمد لله :)#include<cstdio>int mosty=0;int i[10]={0};int L[10]={200,100,50,20,10,5,2,1};//2813044void test(int x,int level){	if(level==7)	{		//i[7]=x;for(int w=0;w<8;w++)printf("%i ",i[w]);putchar(10);		mosty++;		return;	}	for(i[level]=0;1;i[level]++)	{		if(x<i[level]*L[level])			return;		test(x-i[level]*L[level],level+1);	}}int main(){	const int x = 200;	test(x,0);	printf("%d\n",mosty);	return 0;}
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا اريد ان انقد ولكن الجوابان خاطئان، اين حسبت 200 عبوة من نوع الواحد ,او 100 عبوة من نوع اثين  ،انت فقط قمت بجمع جميع الاحتمالات لاختيار ثماني عبوات فقط التي تساوي 200 

كما قلت فربما اختار 200 عبوة من حجم واحد كيف جمعت 200 عبوة من نوع واحد

والحل يكون ب 200 من الحلقات التي تبدا من واحد حتى 8 والبرنامج يحتاج ايام لاستخراج الحل مع ايقاف الحلقة عند بلوغ 201 ايضا البرنامج ياخذ وقت كثير وانا صارلي اسبوع ابحث في التباديل والتوافيق ولم افلح وانت تقول بان الحل فقط 8 حلقات!!!!!!!!!!!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا اريد ان انقد ولكن الجوابان خاطئان، اين حسبت 200 عبوة من نوع الواحد ,او 100 عبوة من نوع اثين  ،انت فقط قمت بجمع جميع الاحتمالات لاختيار ثماني عبوات فقط التي تساوي 200 

كما قلت فربما اختار 200 عبوة من حجم واحد كيف جمعت 200 عبوة من نوع واحد

والحل يكون ب 200 من الحلقات التي تبدا من واحد حتى 8 والبرنامج يحتاج ايام لاستخراج الحل مع ايقاف الحلقة عند بلوغ 201 ايضا البرنامج ياخذ وقت كثير وانا صارلي اسبوع ابحث في التباديل والتوافيق ولم افلح وانت تقول بان الحل فقط 8 حلقات!!!!!!!!!!!!

اذا اضفت سطر لطباعة النتائج ستجد ان كل الاحتمالات اخذت في الحسبان

System.out.println(i+","+j +","+e+","+r+","+t+","+y+","+u+","+o+")");

أنا أيضا حاولت بطرق مختلفة لكن لم اظن الحل سيكون بهذه السهولة

 

200 عبوة من نوع 1

200,0,0,0,0,0,0,0)

و هو الاحتمال الاخير

و 100 عبوة من نوع 2

0,200,0,0,0,0,0,0)

و هو الاحتمال رقم 1784 في  ناتج هذا الكود

 

تم تعديل بواسطه العمدة11
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

 

اين حسبت 200 عبوة من نوع الواحد

في الحلقة الأولى وهي

for( int i = 0 ; i <= 200 ; i ++ )

إذ وصلت الحلقة إلى 200

دخلنا على الحلقة التي بعدها بداية  عند 0

ثم دخلنا على التي بعدها بداية عند 0

إلى الثامنة بداية عند ال 0

 

عندئذ سيكون المجموع هو 200 عبوة مفردة ;)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .