火星人习惯使用三进制数字,只不过还需要转换成字符串
0对应@,1对应$,2对应&
要求:
输入:123
输出:$$$&@
这个只是完成要求功能的部分,题库会测试你的代码的
public static String strPrint(int num) {
StringBuffer sb = new StringBuffer("");
while(num > 0) {
int i = num % 3;
switch (i) {
case 0:sb.append("@");break;
case 1:sb.append("$");break;
case 2:sb.append("&");break;
default:break;
}
num = num / 3;
}
sb.reverse();
String str = sb.toString();
return str;
}
使用StringBuffer而不用String是因为它的append方法在添加一个字符串时不会再在内存中重新new 一个对象,节省内存消耗,而且StringBuffer的reverse()方法会把字符串反转,而反转之后的字符串才是我们想要的,因为除三取余之后,逆序,才是我们想要的三进制表示
欢迎大家一起交流!Java全套学习资料的电子版,我已经上传网盘,免费分享给大家,关注我的公众号,菜单栏–>技术相关–>免费资源即可领取,还有网课查答案,包括学习通、智慧树、mooc,内容涵盖计算机、政治等等,还有其他免费资源(简历模板、电子版书籍和考试资料等等),说不准大家会有用(分享干货)!
扫码加关注吧!