タイトル説明
整数を考えるとは、バイナリ7に変換され、文字列を出力します。
例1:
入力:100
出力: "202"
例2:
入力:-7
出力: "-10"
NOTE:入力範囲は[-1e7、1E7]。
コード
public class Solution {
public String convertToBase7(int num){
boolean isNegative = false;
int weight = 1;
StringBuilder sb = new StringBuilder();
String res;
//若为负数,转为正数处理
if(num<0){
isNegative = true;
num = -num;
}else if(num == 0){
return new String("0");
}
//确定数量级
while(true){
if(num>=weight && num<weight*7){
break;
}else{
weight *= 7;
}
}
//若为负数,先append一个负号
if(isNegative){
sb.append("-");
}
while(weight>=1){
if(num>=weight){
int curr = 0;
for(int i=1;i<7;i++){
if(num>=weight*i && num<weight*(i+1)){
curr = i;
num -= weight*i;
break;
}
}
sb.append(curr);
}else{
sb.append(0);
}
weight /= 7;
}
res = sb.toString();
return res;
}
}
考えてみて
、この質問は難しくありませんが、様々な境界条件のための裁判官は問題ないはずです、例えば、テストケースの数に直面して、より以上に大きい場合、開閉の間違った部分が発生することがあり渡すことはできません。
演奏