记录农行暑期实习生Java编程题
(1)第一题:
火星人用三进制数表示数据,他们的数字符号:@、$、&这三个符号分别表示0、1、2。 现在输入一个十进制数,请把它用火星的三进制数表示出来。
例如:输入值:num = 123 输出值:"$$$&@"
public class Solution {
public String triCoding(int num) {
/*
思路:1.输入十进制首先把十进制转换成三进制
2.对得到的三进制数转换成String或者StringBuilder类型,进行火星文替换
*/
//1.输入十进制首先把十进制转换成三进制
int temp;
int count = 1;
int ref = 0;
while(num != 0) {
temp = num % 3;//十进制转三进制为十进制数除以3取余
num = num / 3;
ref = ref + temp * count;
count *= 10;
}
//2.对得到的三进制数转换成String或者StringBuilder类型,进行火星文替换
StringBuilder sb = new StringBuilder();
sb.append(ref);
for(int i = 0;i < sb.length();i++){
if(sb.charAt(i) == '0'){
sb.setCharAt(i,'@');
}
if(sb.charAt(i) == '1'){
sb.setCharAt(i,'$');
}
if(sb.charAt(i) == '2'){
sb.setCharAt(i,'&');