عضو کانال یوتیوب ما شوید.

حل تمرین مجید، میلاد، رشته‌سازی

حل تمرین مجید، میلاد، رشته‌سازی
حل تمرین مجید، میلاد، رشته‌سازی

حل تمرین مجید، میلاد، رشته‌سازی

در این نوشته تمرین “مجید، میلاد، رشته‌سازی” که در وبسایت کوئرا موجود می باشد را برای شما کاربران عزیز حل کرده ایم.

 

در مورد سایت کوئرا بیشتر بخوانید…

 

سوال تمرین مجید، میلاد، رشته‌سازی

میلاد و مجید در حال ساخت یک رشته طولانی از 0 و  هستند.

رشته به این ترتیب ساخته می‌شود که در گام اول میلاد را می‌نویسد. از آن پس هر کس در نوبت خود رشته‌ای که تا الان ساخته شده است را در نظر گرفته و با تبدیل همه ها به 0 و همه 0ها به 1، رشته حاصل را در ادامه رشته قبلی می‌نویسد و سپس نوبت نفر بعد می‌شود. و این کار را تا ابد ادامه می‌دهند.

برای مثال، پنج نوبت اول بازی به صورت زیر است:

ابتدا میلاد 1 را می‌نویسد و رشته در پایان این مرحله 1 می‌شود.

سپس مجید رشته فعلی که 1 بوده را گرفته و آن را متمم می‌کند و به انتهای رشته اضافه می‌کند در پایان این مرحله رشته به صورت 10 می‌شود.

سپس میلاد 10 را گرفته و آن را متمم می‌کند و به انتهای رشته اضافه می‌کند و در پایان این مرحله رشته به صورت 1001 خواهد شد.

سپس مجید رشته 1001 را گرفته و با متمم کردن آن و اضافه کردنش به انتهای رشته، رشته به شکل 10010110 می‌شود. و به همین ترتیب ساخت رشته تا ابد ادامه پیدا می‌کند.

حال ما از شما می‌خواهیم با گرفتن L و R، از کاراکتر Lام تا کاراکتر Rام رشته را برای ما چاپ کنید.

 

ورودی تمرین مجید،میلاد،رشته سازی

در یک خط به ترتیب L و R به شما داده می‌شود.

 

خروجی تمرین مجید، میلاد، رشته‌سازی

از کاراکتر Lام تا کاراکتر Rام رشته را در یک خط و بدون‌ فاصله چاپ کنید.

 

مثال تمرین مجید، میلاد، رشته‌سازی

 

sample 1:
input :
1 2
output :
10

sample 2:
input :
7 10
output :
1001

 

کد+حل تمرین مجید، میلاد، رشته‌سازی (جاوا)

 

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // First String To run in programm
        String firstString = "1";
        String lastString = "1";

        // Give Input
        String input = sc.nextLine();
        String[] tempInput = input.split(" ");
        int L = Integer.parseInt(tempInput[0]);
        int R = Integer.parseInt(tempInput[1]);

        String temp;

        for (int i = 0; firstString.length() <= R + 1; i++) {

            if(i == 0) {
                firstString = "10";
                lastString = "01";
            }

            temp = lastString + firstString;
            firstString += lastString;
            lastString = temp;

        }

        System.out.println(firstString.substring(L - 1,R));

    }

}

 

روش حل تمرین رشته‌سازی

ابتدا با کمک توابع Scanner ورودی و مقدار را از کاربر می گیریم.

با توابع مربوط به Split String مقدار L و R را دریافت می کنیم و سپس یک حلقه می سازیم به اندازه ای که طول رشته ی خروجی از مقدار R کمتر شود.

در بدنه ی این حلقه اتصالات رشته ها و تولید آن انجام می پذیرد.

نکته ی این سوال این است که رشته قبلی باید ابتدای رشته ی بعدی قرار بگیرد و رشته جدید هم در نهایت به آن بچسبد و اینکار تا مرز مشخص ادامه دارد.

در نهایت هم با کمک توابع substring که در زبان جاوا برای متغیرهای رشته ای یا String قرار دارد بخش مورد نظر خود را جدا می کنید و آنرا چاپ می کنید؛ این بخش محدوده ای از رشته است که از خانه ی Lام تا خانه ی Rام باشد.

پایان.!

 

منبع سوال : وبسایت کوئرا

اگر روش حل بهتری برای “تمرین مجید، میلاد، رشته‌سازی” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم.

اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

موفق باشید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 2 میانگین: 4.5]