求一个整数的7进制

/*
 给定一个整数,将其转化为7进制,并以字符串形式输出。

示例 1:

输入: 100
输出: "202"
示例 2:

输入: -7
输出: "-10"
注意: 输入范围是?[-1e7, 1e7] 。
 */
 public class Solution {

	public static String convertToBase7(int num) { 
		if(num==0) return String.valueOf(0);      //传进来的数字是0则就返回0
		Integer i=num;      					  //定义一个变量接收传进来的整数
		if(num<0){                                //如果num小于0的话,i就乘以-1方便后面好操作       
			i*=-1;
		}
		String n = "";                             //返回值n                                    
		while(i!=0) {							   //迭代i!=0时成立
			n=String.valueOf(i%7)+n;               //i除7取余,转换为字符在拼接变量n
			i=i/7;								   //i除以7赋值给自己
		}
		if(num<0){			
			n="-"+n;							    //num为负数那就在转换回去,对应上面的i*=-1
		}
	   return n;									//返回7进制
	}
	//下面是测试代码
	public static void main(String[]args) {
		System.out.println(Solution.convertToBase7(-150));//  通过-303
		System.out.println(Solution.convertToBase7(-100));//  通过-202
		System.out.println(Solution.convertToBase7(150));// 通过303
		System.out.println(Solution.convertToBase7(100));// 通202
		System.out.println(Solution.convertToBase7(-7));// 通过-10
		System.out.println(Solution.convertToBase7(300));//  通过606
		System.out.println(Solution.convertToBase7(0));//  通过0
		System.out.println(Solution.convertToBase7(3));// 通过3
		System.out.println(Solution.convertToBase7(-1000));// 通过-2626
		System.out.println(Solution.convertToBase7(-7000));// 通过-26260
	}
}

你可能感兴趣的:(简单算法)