【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
生活随笔
收集整理的這篇文章主要介紹了
【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
題解 Java
一開(kāi)始用C++寫(xiě)的,有兩個(gè)大數(shù)的測(cè)試點(diǎn)過(guò)不去,后來(lái)改用Java的BigInteger開(kāi)掛,全部通過(guò)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.math.BigInteger;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = br.readLine();String[] arr = str.split(" ");BigInteger num = new BigInteger(arr[0]);int step = Integer.parseInt(arr[1]);// 翻轉(zhuǎn)for (int i = 0; i < step; i++) {BigInteger tmp = new BigInteger("" + num);BigInteger rev = new BigInteger("" + 0);while (!(num.compareTo(BigInteger.ZERO) == 0)) {// 判斷是否為0rev = rev.multiply(new BigInteger("" + 10));rev = rev.add(num.mod(new BigInteger("" + 10)));num = num.divide(new BigInteger("" + 10));}// 判斷是否回文:翻轉(zhuǎn)后相同//System.out.println(tmp + "---" + rev);if (tmp.compareTo(rev) == 0) {System.out.println(rev + "\n" + i);return;} else {// 相加num = tmp.add(rev);}}System.out.println(num + "\n" + step);} }題解 C++
有兩個(gè)測(cè)試點(diǎn)過(guò)不去
#include<iostream> using namespace std; int main() {long long int num, step;cin >> num >> step;//翻轉(zhuǎn)for (int i = 0; i < step; i++) {long long int tmp = num;long long int rev = 0;while (num != 0) {rev *= 10;rev += num % 10;num /= 10;}//判斷是否回文:翻轉(zhuǎn)后相同if (tmp == rev) {cout << rev << "\n" << i;return 0;}else {//相加num = tmp + rev;}}cout << num <<"\n"<< step;system("pause"); }總結(jié)
以上是生活随笔為你收集整理的【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【PAT甲级】1037 Magic Co
- 下一篇: 【PAT甲级 stack queue的使