9.5中兴笔试编程2代码

使用BigInteger实现

做法十分暴力,一定要超时的,不知道用例有没有作时间限制。

贴出来给大家图一乐⑧
import java.math.BigInteger;
import java.util.Scanner;

public class Solution2 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int n =sc.nextInt();
		int m =sc.nextInt();
		int k =sc.nextInt();

		BigInteger sum=new BigInteger("0");
		for (int i = 3; i <= n; i++) {
			for (int j = 2; j <= m; j++) {
				if(i+j==k) {
					BigInteger temp1 = get(new BigInteger(n+"")).divide(get(new BigInteger(i+"")).multiply(get(new BigInteger((n-i)+""))));
					BigInteger temp2 = get(new BigInteger(m+"")).divide(get(new BigInteger(j+"")).multiply(get(new BigInteger((m-j)+""))));
					sum= sum.add((temp1.multiply(temp2)));
					if (sum.intValue() > 1000000007) {
						sum = sum.remainder(new BigInteger("1000000007"));
					}
				}
			}
		}
		System.out.println(sum.remainder(new BigInteger("1000000007")));
		
	}

	private static BigInteger get(BigInteger m) {
		BigInteger temp = new BigInteger("1");
		if (m.intValue()==0) {
			return temp;
		}
		
		for (int i = 1; i <= m.intValue(); i++) {
			temp = temp.multiply(new BigInteger(i+""));
		}
		return temp;
	}
	


	
}



#笔试题目##中兴#
全部评论
测试用例过不去大部分情况是溢出了,这题我也没做出来,最后没时间改了。
点赞 回复 分享
发布于 2020-09-05 17:18

相关推荐

1 1 评论
分享
牛客网
牛客企业服务