题目描述
- 如何将$n_{10}$转化为b进制?短除法
- 如何判断一个数是回文数?首尾相同
for(int i=0,j=s.length();i<j;i++,j--)
{
判断s.charAt(i)是否等于s.charAt(j)
}
- 如何将$(qwerty)_{b}$进制转化为十进制?秦九韶算法,
$qb^{5}$+$wb^{4}$+$eb^{3}$+$rb^{2}$+$rb^{1}$+$tb^{0}$
=(((qb+w)b+e)b+r)b+t
- 如何将a进制转化为b进制?a->10->b. or. a->b秦九韶
- 拓展题: 124.数的进制转化
算法1
短除法
- int转化为char,1 [int] ==>> (char)(1+48) [char]
- 字母对应ASCII码,A–>>65
JAVA 代码
import java.util.*;
public class Main{
static Scanner in = new Scanner(System.in);
public static char get(int n){
if(n>=0&&n<10) return (char)(n+48);
return (char)(n-10+65);
}
public static String base(int x, int b){
StringBuilder num= new StringBuilder();
while(x!=0){
num.append(get(x%b)) ;
x /= b;
}
return num.reverse().toString();
}
public static boolean check(String num){
for(int i=0,j=num.length()-1;i<j;i++,j--){
if(num.charAt(i)!=num.charAt(j)) return false;
}
return true;
}
public static void main(String[] args){
int b = in.nextInt();
for(int i=1;i<=300;i++){
String num = base(i*i,b);
if(check(num)){
System.out.println(base(i,b)+" "+num);
}
}
}
}