تمرین چاپ برعکس با جاوا
در این نوشته تمرین “دنباله فیبوناچی به صورت برگشتی” که در وبسایت کوئرا موجود است را برای شما کاربران عزیز حل کردهایم.
تمرین چاپ برعکس با جاوا
سوال تمرین
برنامهای بنویسید که در هر مرحله یک عدد را از ورودی دریافت کند و تا زمانی که رقم صفر وارد نشده به کار خود ادامه دهد. پس از وارد شده رقم صفر این برنامه باید اعداد وارد شده را به صورت برعکس ترتیب وارد شدن چاپ نماید.
ورودی تمرین
نحوه ورودی دادن این گونه است که در هر خط یک عدد وارد میشود. تعداد اعداد در ورودی کمتر از ۱۰۰۰ است. تضمین میشود که تنها یک بار عدد ۰ در انتهای ورودی ظاهر شود و دیگر اعداد در ورودی، اعداد طبیعی حداکثر ۱۰۰۰ شوند.
خروجی تمرین
در خروجی باید در هر خط یک عدد چاپ شود.
مثال تمرین
input : 3 4 7 4 9 0 output : 9 4 7 4 3
کد تمرین
import java.math.RoundingMode; import java.text.DecimalFormat; import java.util.Scanner; public class Main { static Scanner sc; public static void main(String[] args) { sc = new Scanner(System.in); int number; String result = ""; int counter = 0; while (true) { number = sc.nextInt(); if(number == 0) break; if(counter==0) result = String.valueOf(number); else result = String.valueOf(number) + '\n' + result; counter++; } System.out.println(result); } }
روش حل تمرین
ابتدا یک حلقهی بی نهایت while را با true میسازیم. سپس هر بار یک عدد را با کمک Scanner دریافت میکنیم. در بخش بعد یک شماره با نام counter داریم که اگر بار اول اجرای حلقه بود عینا عدد را در خروجی میگذاریم.
نکته: برای نمایش خروجی نهایی از متغیری با نام result استفاده کردهایم.
در دفعات بعدی حلقه بررسی میکنیم در صورتی که عدد صفر بود از حلقه خارج میشویم و مقدار خروجی را چاپ میکنیم. اگر صفر وارد نشده بود مقدار عدد جدید را به ابتدای ورودی میچسبانیم و یک کاراکتر new line که با \n ایجاد میشود را اضافه میکنیم.
حل سوال توسط کاربران
کد 1
package ArraysAndInformation; import java.util.Scanner; public class ReversePrint { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int n[] = new int[1000]; int x; for (int i = 0; ; i++) { n[i] = scan.nextInt(); x = i; if (n[i] == 0) break; } for (int i = (x – 1); i >= 0; i–) System.out.println(n[i]); } }
کد 2
import java.util.Scanner; public class temp { public static void main(String[] args) { Scanner get = new Scanner(System.in); int num = 0, end, start, p; int[] numbers = new int[1000]; int i = 0; do { num = get.nextInt(); numbers[i] = num; i++; } while (num != 0); { start = 0; end = numbers.length - 1; while (end > start) { p = numbers[start]; numbers[start] = numbers[end]; numbers[end] = p; end--; start++; } for (int item : numbers) { if(item!=0) { System.out.println(item + " "); } else { continue; } } } } }
منبع سوال: وبسایت کوئرا
اگر روش حل بهتری دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.
میشود جواب سوال ها را به صورت پایتون بنویسید
در مرحله های بعدی این کار انجام میشود
با تشکر از مشارکتتون توی این نوشته.
کد شما به عنوان کد کاربران به محتوای این نوشته اضافه شد.
بسیار عالی، ممنون از مشارکت شما.