⬆︎
×

[PAT-A] 1019 General Palindromic Number

Hyplus目录

Java

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class Main {
    static int n, b;
    static List<Integer> nums = new ArrayList<>();

    public static boolean check() {
        for (int i = 0, j = nums.size() - 1; i < j; i++, j--) {
            if (!nums.get(i).equals(nums.get(j))) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");
        n = Integer.parseInt(input[0]);
        b = Integer.parseInt(input[1]);

        if (n == 0) {
            nums.add(0);
        } else {
            while (n > 0) {
                nums.add(n % b);
                n /= b;
            }
        }

        if (check()) {
            System.out.println("Yes");
        } else {
            System.out.println("No");
        }

        // 输出转换后的数字
        System.out.print(nums.get(nums.size() - 1));
        for (int i = nums.size() - 2; i >= 0; i--) {
            System.out.print(" " + nums.get(i));
        }
    }
}

C++

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>

using namespace std;

int n, b;
vector<int> nums;

bool check() {
    for (int i = 0, j = nums.size() - 1; i < j; i++, j--)
        if (nums[i] != nums[j]) return false;
    return true;
}

int main() {
    cin >> n >> b;

    if (!n) nums.push_back(0);
    while (n) {
        nums.push_back(n % b);
        n /= b;
    }

    if (check()) puts("Yes");
    else puts("No");

    cout << nums.back();
    for (int i = nums.size() - 2; i >= 0; i--) cout << ' ' << nums[i];

    return 0;
}

发表评论