Java 大数加法、乘法

大数加法 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();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_44607936/article/details/100187786
今日推荐