1. 程式人生 > >(網易2018校招筆試)[程式設計題] 魔法幣 Magic Coin

(網易2018校招筆試)[程式設計題] 魔法幣 Magic Coin

小易準備去魔法王國採購魔法神器,購買魔法神器需要使用魔法幣,但是小易現在一枚魔法幣都沒有,但是小易有兩臺魔法機器可以通過投入x(x可以為0)個魔法幣產生更多的魔法幣。
魔法機器1:如果投入x個魔法幣,魔法機器會將其變為2x+1個魔法幣
魔法機器2:如果投入x個魔法幣,魔法機器會將其變為2x+2個魔法幣
小易採購魔法神器總共需要n個魔法幣,所以小易只能通過兩臺魔法機器產生恰好n個魔法幣,小易需要你幫他設計一個投入方案使他最後恰好擁有n個魔法幣。
輸入描述:
輸入包括一行,包括一個正整數n(1 ≤ n ≤ 10^9),表示小易需要的魔法幣數量。

輸出描述:
輸出一個字串,每個字元表示該次小易選取投入的魔法機器。其中只包含字元’1’和’2’。

輸入例子1:
10

輸出例子1:
122

程式碼:

import java.util.Scanner;
public class silentpoint {  
    public static String magic(int n,String re) {
         while(n>0){  
                if(n%2==0){  
                    re+='2';  
                    n=(n-2)/2;  
                }  
                else{  
                    re+='1'
; n=(n-1)/2; } } return re; } public static void main(String[] args) { Scanner sc =new Scanner(System.in); int n = sc.nextInt(); String re =""; re=magic(n,re); for (int i = re.length()-1; i >= 0
; i--) { System.out.print(re.charAt(i)); } } }