解法一:进制转换+回文数判断
import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); in.nextToken(); int N = (int) in.nval; in.nextToken(); int b = (int) in.nval; List<Integer> list = new ArrayList<>(); while (N > 0) { list.add(N % b); N /= b; } boolean flag = true; int len = list.size(); for (int i = 0; i < len / 2; ++i) { if (!list.get(i).equals(list.get(len - i - 1))) { flag = false; break; } } if (flag) { out.println("Yes"); } else { out.println("No"); } for (int i = len - 1; i > 0; --i) { out.print(list.get(i) + " "); } out.println(list.get(0)); out.flush(); }}