אני צריך לכתוב פונקציה רקורסיבית שמקבלת מספר ואולי עוד כמה דברים נוספים... המספר המקסימלי- 250. המטרה היא להפחית את המספר ל 42 תוך 3 פעולות-אם המספר מתחלק ב 2 להוריד ממנו מחצית.
אם המספר מתחלק ב 3 או 4 להוריד ממנו את מכפלת שתי ספרותיו האחרונות.
אם מתחלק ב 5, להוריד ממנו 42 בדיוק.
המטרה היא כאמור שבסוף ישאר לי 42.
לדוגמא- המספר 104
הוא מתחלק ב2 ולכן נפחית מחצית---------> נקבל 52
52 מתחלק ב 4 ולכן נפחית 5*2-------------> נקבל
_________________________________________________________________
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace ConsoleApplication1 { class Program { static void Main(string args) { int n = int.Parse(Console.ReadLine()); int steps = 1; Console.Write(doit(n, steps)); Console.ReadKey(); } static int doit(int n, int steps) { if ((n <= 42) || (steps == 4)) { Console.WriteLine("UR NUMBER UNDER : 42 , OR cannot be 42 in 3 steps"); return (n); } if (n / 2 == 0) { return (doit(n / 2, (steps + 1))); } else if ((n / 3 == 0) || (n / 4 == 0)) { return doit(((n % 100) / 10) * (n % 10), (steps + 1)); } else if (n / 5 == 0) { return (doit(n - 42, (steps + 1))); } else if ((n == 42) && (steps == 3)) { return (n); } return (n); } } }
|
a