常見的有棋盤覆蓋和A+B問題,這類問題牽扯到的數值都比較大,如果用一般的數值類型,肯定輸出不了,所以就要想一個辦法,怎么把大數轉換一下輸出。
A+B Problem II
時間限制:3000 ms | 內存限制:65535 KB
難度:3
描述
I have a very simple problem for you. Given two integers A and B, your job is to calculate the Sum of A + B.
A,B must be positive.
輸入
The first line of the input contains an integer T(1<=T<=20) which means the number of test cases. Then T lines follow, each line consists of two positive integers, A and B. Notice that the integers are very large, that means you should not process them by using 32-bit integer. You may assume the length of each integer will not exceed 1000.
輸出
For each test case, you should output two lines. The first line is "Case #:", # means the number of the test case. The second line is the an equation "A + B = Sum", Sum means the result of A + B. Note there are some spaces int the equation.
樣例輸入
2
1 2
112233445566778899 998877665544332211
樣例輸出
Case 1:
1 + 2 = 3
Case 2:
112233445566778899 + 998877665544332211 = 1111111111111111110
偷懶的我,用java很簡單
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int l=sc.nextInt();
for(int i=1;i<=l;i++){
if(i!=1) System.out.println();
BigInteger a,b;
a=sc.nextBigInteger();
b=sc.nextBigInteger();
System.out.println("Case "+i+":");
System.out.println(a+" + "+b+" = "+a.add(b));
}
}
}
java.math提供用于執行任意精度整數算法 (BigInteger) 和任意精度小數算法 (BigDecimal) 的類。
棋盤覆蓋
時間限制:3000 ms | 內存限制:65535 KB
難度:3
描述
在一個2k×2k(1<=k<=100)的棋盤中恰有一方格被覆蓋,如圖1(k=2時),現用一缺角的2×2方格(圖2為其中缺右下角的一個),去覆蓋2k×2k未被覆蓋過的方格,求需要類似圖2方格總的個數s。如k=1時,s=1;k=2時,s=5
輸入
第一行m表示有m組測試數據;
每一組測試數據的第一行有一個整數數k;
輸出
輸出所需個數s;
樣例輸入
3
1
2
3
樣例輸出
1
5
21
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner (System.in);
int l=sc.nextInt();
BigInteger m=BigInteger.valueOf(4);
BigInteger n=BigInteger.valueOf(-1);
BigInteger o=BigInteger.valueOf(3);
for(int i=1; i<=l; i++) {
if(i!=1) System.out.println();
BigInteger s;
int k=sc.nextInt();
s=((m.pow(k)).add(n)).divide(o);
System.out.println(s);
}
}
}
強大的java大數問題。