5

#yyds干货盘点# 解决名企真题:扭蛋机

 1 year ago
source link: https://blog.51cto.com/u_15488507/5434769
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

#yyds干货盘点# 解决名企真题:扭蛋机

原创

97的风 2022-07-01 17:32:57 博主文章分类:面试题 ©著作权

文章标签 java 字符串 代码实现 文章分类 Java 编程语言 阅读数175

1.简述:

22娘和33娘接到了小电视君的扭蛋任务:

一共有两台扭蛋机,编号分别为扭蛋机2号和扭蛋机3号,22娘使用扭蛋机2号,33娘使用扭蛋机3号。

扭蛋机都不需要投币,但有一项特殊能力:

扭蛋机2号:如果塞x(x范围为>=0整数)个扭蛋进去,然后就可以扭到2x+1个

扭蛋机3号:如果塞x(x范围为>=0整数)个扭蛋进去,然后就可以扭到2x+2个

22娘和33娘手中没有扭蛋,需要你帮她们设计一个方案,两人“轮流扭”(谁先开始不限,扭到的蛋可以交给对方使用),用“最少”的次数,使她们能够最后恰好扭到N个交给小电视君。

输入描述:

输入一个正整数,表示小电视君需要的N个扭蛋。

输出描述:

输出一个字符串,每个字符表示扭蛋机,字符只能包含"2"和"3"。

2.代码实现:

import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args){
Scanner cin = new Scanner(new BufferedInputStream(System.in));
int n = cin.nextInt();
StringBuilder ans = new StringBuilder();
while(n!=0){
if((n&1)==1){
n=(n-1)/2;
ans.append('2');
}else{
n=(n-2)/2;
ans.append('3');
}
}
System.out.println(ans.reverse());
}
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK