자바 10 진 7 진 또는 기타 진(개선)
10094 단어 알고리즘&논리&수학JAVA 프로그래머알고리즘leetcode자바
/**
* 10 7
*/
public static String toSeven(int number){
String result="";
String remain = "";
while (number>=7){
remain = String.valueOf(number%7);
number = number/7;
result = remain + result;
}
return String.valueOf(number)+result;
}
코드 즉 수학 이라는 것 을 깨 달 았 다.이것 은 단지 끊임없이 남 는 작은 방법 일 뿐 이지 만 기 교 는 매우 교묘 하 다.
위 에는 아주 오래된 시간 입 니 다.2020-03-28 23:20:32.
2020-10-30 시간 반 이 지난 개선 버 전
기타 진법 10 진법
사고방식:예 를 들 어 2 진법 1010 누적 곱 하기
십 진법 기타 진법
사고:누 적 된 것 을 제외 하고 마지막 으로 얻 은 비 0 의 상업 도 나머지 로 삼 는 다.
/***
* @param var deal value
* @param base the base of the converting value
* @return if var=10 base=2 decimal to binary result = 1010
*/
public static String baseConvert(int var,int base){
StringBuilder result = new StringBuilder();
String remain = "";
while(var!=0){
remain = String.valueOf(var%base);
var = var/base;
result.insert(0,remain);
}
return result.toString();
}
/**
* @param var the base
* @param baseOfVar the base of var
* @return the decimal value of var assume var = 1010 baseOfVar=2 return 10
*/
public static int toDecimal(int var, int baseOfVar){
String s = String.valueOf(var);
int result = 0;
int cirTime = 0;
for (int i=s.length()-1;i>=0;i--){
result+=Integer.parseInt(s.substring(i,i+1))*Math.pow(baseOfVar,cirTime);
cirTime++;
}
return result;
}
public static int toDecimal(String var, int baseOfVar){
int result = 0;
int cirTime = 0;
for (int i=var.length()-1;i>=0;i--){
result+=Integer.parseInt(var.substring(i,i+1))*Math.pow(baseOfVar,cirTime);
cirTime++;
}
return result;
}