大数加法 CF 1181 B
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int l = input.nextInt();
String num = input.next();
BigInteger x, y, sum;
int cnt1 = (l-1)>>1, cnt2 = (l+1)>>1;
while(num.charAt(cnt1) =='0') --cnt1;
while(cnt2!=l && num.charAt(cnt2) == '0') ++cnt2;
if(cnt2 == l)
x = new BigInteger("0");
else
x = new BigInteger(num.substring(cnt2,l));
y = new BigInteger(num.substring(0,cnt2));
sum = x.add(y);
x = new BigInteger(num.substring(cnt1,l));
if(cnt1 == 0)
y = new BigInteger("0");
else
y = new BigInteger(num.substring(0,cnt1));
//y = new BigInteger(num.substring(cnt1,l));
sum = sum.min(x.add(y));
System.out.println(sum);
input.close();
}
}
计蒜客 A1535
比较函数要用equals。
注意多组输入的形式。
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
BigInteger n,base,x;
String num;
int t = input.nextInt();
while(t>0) {
num = input.next();
n = new BigInteger(num);
base = new BigInteger("2");
x = new BigInteger("1");
while((n.max(x)).equals(n)) {//比较像等要用equals函数
x = x.multiply(base);
}
x = x.divide(base);
System.out.println(x);
t--;
}
input.close();
}
}