【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
生活随笔
收集整理的這篇文章主要介紹了
【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
題解 Java
一開始用C++寫的,有兩個大數的測試點過不去,后來改用Java的BigInteger開掛,全部通過
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]);// 翻轉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));}// 判斷是否回文:翻轉后相同//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++
有兩個測試點過不去
#include<iostream> using namespace std; int main() {long long int num, step;cin >> num >> step;//翻轉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;}//判斷是否回文:翻轉后相同if (tmp == rev) {cout << rev << "\n" << i;return 0;}else {//相加num = tmp + rev;}}cout << num <<"\n"<< step;system("pause"); }總結
以上是生活随笔為你收集整理的【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PAT甲级】1037 Magic Co
- 下一篇: 【PAT甲级 stack queue的使