504 7進数

ベース-7

タイトル説明
整数を考えるとは、バイナリ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;
	}
}

考えてみて
、この質問は難しくありませんが、様々な境界条件のための裁判官は問題ないはずです、例えば、テストケースの数に直面して、より以上に大きい場合、開閉の間違った部分が発生することがあり渡すことはできません。

演奏
演奏

公開された75元の記事 ウォンの賞賛0 ビュー1504

おすすめ

転載: blog.csdn.net/qq_34087914/article/details/104120622