تمرین سلام سلام خداحافظ با جاوا
در این نوشته تمرین “سلام سلام خداحافظ” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
تمرین سلام سلام خداحافظ با جاوا
سوال تمرین
از آنجایی که دانشجویان دانشگاه تهران خیلی با هم دوست هستند و برای دوستانشان هم ارزش زیادی قائلند، پس از ورود منتظر میشوند تا بقیهی دوستانشان هم از درب وارد شوند! دانشجوها به ترتیب از درب وارد میشوند و هر کسی پس از ورود، با ترتیب برعکس ورودی به افراد حاضر در جمع سلام میکند (ابتدا نفر آخری که وارد شده، سپس نفر یکی مانده به آخری که وارد شده، … و در نهایت نفر اولی که وارد دانشگاه شده است). جالب است بدانید که بچههای دانشگاه تهران اعتقادی به جواب سلام ندارند. چون افراد دانشگاه تهران زیاد درس میخوانند، روابط اجتماعی ضعیفی دارند و فقط سلام و خداحافظی بلدند. به همین دلیل، پس از اینکه همهی افراد وارد شدند، دانشجوها با همان ترتیبی که آمده بودند، شروع به رفتن میکنند. ولی فراموش نکنیم که دانشجوهای دانشگاه تهران خیلی باادب هستند و هیچگاه بدون خداحافظی از بقیه، جمع را ترک نمیکنند. هر کسی که میخواهد برود، ابتدا از تمام بچهها خداحافظی میکند و سپس میرود. منتها چون سرش از حجم بالای سلامها درد گرفته است، فقط میگوید خداحافظ بچهها. پس از آن، بقیهی بچهها به ترتیب ورودشان از او خداحافظی میکنند و سپس نفر مورد نظر خواهد رفت. مسئولین دانشگاه تهران خیلی به فکر دانشجوهایشان هستند و به همین خاطر میخواهند تمام گفتوگوهای بین دانشجویان را دقیق مورد بررسی قرار دهند. از آنجایی که مسئولین سرشان خیلیییییییی شلوغ است، به آنها کمک کنید و این گفتوگوها را برایشان چاپ کنید.
ورودی تمرین
در سطر اول ورودی عدد n آمده است. در سطر دوم رشته آمده است که رشتهی ام، نام نفر i ام است.
1 <= n <= 50
طول اسم هر نفر کمتر مساوی ده است.
خروجی تمرین
در خروجی، همهی جملاتی که در گفتوگوی دانشجوها به کار برده شده است را به ترتیب چاپ کنید. هر جمله را به این صورت چاپ کنید که ابتدا اسم دانشجو و سپس جملهای که گفته است چاپ شود.
مثال تمرین
example 1 : =================================== input : 4 ali hana jafar tizi output : hana: salam ali! jafar: salam hana! jafar: salam ali! tizi: salam jafar! tizi: salam hana! tizi: salam ali! ali: khodafez bacheha! hana: khodafez ali! jafar: khodafez ali! tizi: khodafez ali! hana: khodafez bacheha! jafar: khodafez hana! tizi: khodafez hana! jafar: khodafez bacheha! tizi: khodafez jafar! tizi: khodafez bacheha! example 2 : =================================== input : 1 mikaeel output : mikaeel: khodafez bacheha!
حل تمرین
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String n = sc.nextLine(); int nn = Integer.parseInt(n); String myInput = sc.nextLine(); String[] splited = myInput.split("\\s+"); if(nn < 0 || nn > 50) return; for (int i = 2; i<=nn; i++) { for (int j = i - 1; j>=1; j--) { System.out.println(splited[i - 1] + ": salam " + splited[j - 1] + "!"); } } for (int i = 1; i<=nn; i++) { System.out.println(splited[i - 1] + ": khodafez bacheha!"); for(int j = i + 1; j <= nn; j++) { System.out.println(splited[j - 1] + ": khodafez " + splited[i - 1] + "!"); } } } }
روش حل تمرین
در ابتدا با کمک کتابخانهی Scanner دو ورودی از کاربر دریافت میکنیم؛ در خط اول یک عدد به عنوان عدد n و در خط بعد هم یک رشته که شامل اسمها میشود و بین هر دو اسم یک فاصله یا کاراکتر space قرار میگیرد. بعد از دریافت این دو خط در خط بعدی با کمک تابع split رشته را بخش بخش میکنیم و آنرا در یک آرایه میریزیم. در ادامه در حلقهی for اصلی داریم که داخل هر کدام از این حلقههای for یک حلقهی for دیگر نیز قرار دارد. در حلقهی for اول شما باید سلامها را کنترل کنید و در حلقه ی for دوم باید خداحافظیها را کنترل کنید. در بخش اول که مربوط به سلامها بود حلقهی اصلی به صورت صعودی پیش میرود و از نفر دوم این کار را شروع میکند چرا که نفر اول کسی را ندارد که به آن سلام کند؛ داخل همین حلقه یک حلقهی نزولی است که از شمارندهی فردی که تازه وارد صف شده است شروع میکند و تا اولین نفر به آن سلام میکند. در بخش دوم که مربوط به خداحافظیها است، حلقهی اصلی و حلقهی داخل هر دو به صورت صعودی کار میکنند؛ در حلقهی بیرونی بخش دوم ابتدا فرد مورد نظر با بقیه خداحافظی میکند و در حلقهی داخل این حلقه افراد باقیمانده در صف جواب خداحافظی اون را میدهند.
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری برای “تمرین سلام سلام خداحافظ” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.
سلام و عرض ادب به شما
بنده ممنون می شوم که اگر این سوال را با پایتون حل کنید و اگر امکانش هست ایمیل کنید
سوالات این بخش تنها با یک زبان حل میشه از الگوریتم انجام کار خودتون کد مربوط به زبان مورد نظرتون رو بنویسید اگر دوست داشتین با ما به اشتراک بزارید
موفق باشید