تحدي برمجي[003][سهل]: كيف تجد الروبوت

  • afaki

هناك روبوت في المستوى الإحداثي الديكارتي يقف عند النقطة (0,0)

اذا علمت ان الروبوت سيتحرك عدد N حركة

في الحركة رقم 1 يتحرك وحدة واحدة إلى اليمين موقعه الجديد هو (1,0)

في الحركة رقم 2 يتحرك وحدتين إلى الأعلى موقعه الجديد هو (1,2)

في الحركة رقم 3 يتحرك ثلاث وحدات إلى اليسار موقعه الجديد هو (-2,2)

في الحركة رقم 4 يتحرك أربع وحدات إلى الأسفل موقعه الجديد هو (-2,-2)

في الحركة رقم 5 يتحرك خمس وحدات إلى اليمين موقعه الجديد هو (3,-2)

وهكذا...

قم بإيجاد موقع الروبوت بعد N حركة


tundev أضف ردا

 

  public class Robot {
        private int x ;
        private int y ;

    public Robot (){
        x = 0; 
        y = 0;
        }

    public void moveX(int x){
        this.x += x ;
        }
    public void moveY(int y){
        this.y += y ;
    }

    @Override
    public String toString() {
        return "POSITION : ["+x+","+y+"]";
    }


package robot;

import java.util.Scanner;

public class Main {


    private static Scanner scan;

    public static void main(String[] args) {

        scan = new Scanner(System.in);
        System.out.println("veuillez saisir un nombre ");
        int n  =scan.nextInt();
        Robot r = new Robot() ;
        for(int i = 1 ; i <= n ; i++ ){
            switch (i%4) {
            case 1:
                r.moveX(i);
                break;
            case 2:
                r.moveY(i);
                break;
            case 3:
                r.moveX(i*(-1) ); 
                break;
            case 4:
                r.moveY(i * (-1));
                break;


            }
            System.out.println("N = "+i + " "+r);


            }




    }

}


}

التنفيذ

veuillez saisir un nombre

5

N = 1 POSITION : [1,0]

N = 2 POSITION : [1,2]

N = 3 POSITION : [-2,2]

N = 4 POSITION : [-2,2]

N = 5 POSITION : [3,2]