Mohanad Hammoudeh نشر 13 أغسطس 2020 أرسل تقرير مشاركة نشر 13 أغسطس 2020 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
1 مصطفى القباني نشر 13 أغسطس 2020 أرسل تقرير مشاركة نشر 13 أغسطس 2020 يمكن عمل المطلوب كالآتي: #include <iostream> using namespace std; int minimumNumberOfSteps(int n, int count){ if (n==1){ return count; } else if(n%3 == 0){ return minimumNumberOfSteps(n/3, count+1); } else if(n%2 == 0){ return minimumNumberOfSteps(n/2, count+1); } else{ return minimumNumberOfSteps(n-1, count+1); } } int main() { int n; cout<<"Please enter n"; cin >> n; int answer = minimumNumberOfSteps(n,0); cout<< answer << endl; return 0; } في الدالة المعرفة تستخدم الrecursion مثل المطلوب وتأخذ متغيرين هما العدد n، وعدد الخطوات التي تم عملها count حتى الآن، وتطبق الأربع حالات المعطاه وهي: إذا كانت قيمة n مساوية للواحد نقوم بإرجاع عدد الخطوات التي تم عملها للوصول. إذا كانت n تقبل القسمة على ثلاثة، نقوم بإستدعاء الدالة مع إستبدال n بn/3 وإضافة واحد لعدد الخطوات count. إذا كانت n تقبل القسمة على اثنان أي انها عدد زوجي، نقوم بإستدعاء الدالة مع إستبدال n بn/2 وإضافة واحد لعدد الخطوات count. إذا كانت n لا تقبل القسمة على 2 أو ثلاثة، نقوم بإستدعاء الدالة مع إستبدال n بn-1 وزيادة واحد لعدد الخطوات count. يمكنك تجربة الكود من هنا. 1 اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
0 Mohanad Hammoudeh نشر 14 أغسطس 2020 الكاتب أرسل تقرير مشاركة نشر 14 أغسطس 2020 (معدل) تم التعديل في 14 أغسطس 2020 بواسطة Mohanad Hammoudeh اقتباس رابط هذا التعليق شارك على الشبكات الإجتماعية More sharing options...
السؤال
Mohanad Hammoudeh
رابط هذا التعليق
شارك على الشبكات الإجتماعية
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.