小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入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编程思路:其实通过分析我们可以发现,不论是单数还是双数,要达到N只需要使用少于N一半的魔法币通过一次魔法机器就可以完成,例如N为7,可以1(0-1)+1(1-3)+1(3-7) 或者1(0-1)+1(1-3)+2(1+2-6)或者2(0-2)+2(2-6)+1(6+0-1)。。。。,而不论是魔法机器1还是2,生成N个魔法币的途径都有非常多种,所以在这里我们只需要其中一种饥渴,那就是双数就用2号,单数就用1号。(之前我用的是先2后1,想的是这样可以通过最少次数得到结果)
import java.util.*;
public class Main{
    public stat
 
                   
                   
                   
                   小易需要通过两台魔法机器获得特定数量的魔法币,每台机器有不同的产出规则。本文介绍了如何设计一个策略,使得小易能恰好拥有所需的魔法币,并提供了输入输出示例及编程思路。
小易需要通过两台魔法机器获得特定数量的魔法币,每台机器有不同的产出规则。本文介绍了如何设计一个策略,使得小易能恰好拥有所需的魔法币,并提供了输入输出示例及编程思路。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   904
					904
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            