5 مسئله‌ای که هر برنامه‌نویسی باید بتواند زیر یک ساعت آن‌ها را حل کند

5 مسئله‌ای که هر برنامه‌نویسی باید بتواند زیر یک ساعت آن‌ها را حل کند

مسائلی که در ادامه مطرح می‌شوند اگرچه در نگاه اول آسان به نظر می‌رسند، اما شاید باورش برایتان سخت باشد که بفهمید خیلی از دولوپرها بعضاً با چالش‌های جدی برای حل آن‌ها مواجه می‌شوند!

مسالۀ اول
سه تابع بنویسید که یک لیست را به عنوان ورودی گرفته و یکی به کمک حلقه‌ای از جنس for، دیگری به کمک while و آخری با استفاده از یک تابع بازگشتی (Recursion) حاصل‌جمع آن‌ها را برگرداند.

مسالۀ دوم
تابعی بنویسید که دو لیست را به عنوان ورودی گرفته و اعضای آن‌ها را به صورت متناوب با هم ادغام کرده و در یک لیست جدید برگرداند (مثلاً اگر دو لیست [a, b, c] و [3, 2, 1] را به عنوان ورودی به آن بدهیم، باید لیست [a, 1, b, 2, c, 3] را برگرداند.)

مسالۀ سوم
برنامه‌ای بنویسید که 100 جملۀ اول سری فیبوناتچی را چاپ کند (در سری فیبوناتچی هر جمله حاصل‌جمع دو جملۀ قبل از خودش می‌باشد و 10 سری اول آن به صورت ۳۴ ،۲۱ ،۱۳ ،۸ ،۵ ،۳ ،۲ ،۱ ،۱ ،۰ می‌باشد.)

مسالۀ چهارم
تابعی بنویسید که لیستی از اعداد صحیح غیر منفی را گرفته و با کنار هم قرار دادن آن‌ها بزرگ‌ترین عدد ممکن را برگرداند (مثلاً وقتی لیست [50 ,2 ,1 ,9] را می‌گیرد، باید عدد 95021 را برگرداند.

مسالۀ پنجم
تابعی بنویسید که کلیهٔ چندجمله‌ای‌هایی را که می‌توان با استفاده از گذاشتن + و - یا حتی هیچ اپراتوری بین اعداد 1 تا 9 (دقیقاً به همین ترتیب) ساخت به طوری که مجموع آن‌ها 100 شود. به طور مثال داریم:

1 + 2 + 34 – 5 + 67 – 8 + 9 = 100

پاسخ شما به هر یک از مسائل بالا چه می‌باشد و هر کدام از این پنج مسئله را ظرف مدت چند دقیقه توانستید حل نمایید؟ تجربیات خود را با دیگر کاربران سکان آکادمی به اشتراک بگذارید.

منبع


محمد طاهری