【2014 Multi-University Training Contest 2 1002】/【HDU 4873】 ZCC Loves Intersection
果然,或滥用零件,啥都不说了。我们欣慰地学习阅读。这两天残疾儿童是数学。
这是求所需的问题,不明确。贴上官方的解题报告。
留着慢慢研究 。
好吧看到其它人写的发现有自带函数。就再贴一个新的。
就得在最以下:
import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger [][] c = new BigInteger[110][110]; public static void del() { for(int i = 0; i <= 105; i ++) c[i][0] = c[i][i] = BigInteger.ONE; for(int i = 1; i <= 105; i ++) { for(int j = 1; j < i; j ++) c[i][j] = (c[i-1][j-1] .add(c[i-1][j])); } } public static void main(String[] args) { Scanner cin = new Scanner(System.in); int d; BigInteger n=BigInteger.ZERO,up=BigInteger.ZERO,down=BigInteger.ZERO,temp=BigInteger.ZERO; del(); while(cin.hasNext()) { n=cin.nextBigInteger(); d=cin.nextInt(); up=c[d][2].multiply(n.add(BigInteger.valueOf(4)).pow(2)); down=BigInteger.valueOf(9).multiply(n.pow(d)); if(up.compareTo(down)==0) { System.out.println(1); } else { temp=up.gcd(down); System.out.println(up.divide(temp)+"/"+down.divide(temp)); } } cin.close(); } }
以下是代码(旧):
import java.math.BigInteger; import java.util.Scanner; public class Main { static BigInteger [][] c = new BigInteger[110][110]; public static void del() { for(int i = 0; i <= 105; i ++) c[i][0] = c[i][i] = BigInteger.ONE; for(int i = 1; i <= 105; i ++) { for(int j = 1; j < i; j ++) c[i][j] = (c[i-1][j-1] .add(c[i-1][j])); } } public static BigInteger gcd(BigInteger a ,BigInteger b) { if(a .compareTo(b)<0) return gcd(b,a); if(a .mod(b).compareTo(BigInteger.ZERO)== 0) return b; return gcd(b, a.mod(b)); } public static BigInteger pow(BigInteger a ,int b) { BigInteger ans = BigInteger.ONE; for(int i=1;i<=b;i++) { ans=ans.multiply(a); } return ans; } public static void main(String[] args) { Scanner cin = new Scanner(System.in); int d; BigInteger n=BigInteger.ZERO,up=BigInteger.ZERO,down=BigInteger.ZERO,temp=BigInteger.ZERO; del(); while(cin.hasNext()) { n=cin.nextBigInteger(); d=cin.nextInt(); up=c[d][2].multiply(pow(n.add(BigInteger.valueOf(4)),2)); down=BigInteger.valueOf(9).multiply(pow(n, d)); if(up.compareTo(down)==0) { System.out.println(1); } else { temp=gcd(up, down); System.out.println(up.divide(temp)+"/"+down.divide(temp)); } } cin.close(); } }
版权声明:本文博客原创文章。博客,未经同意,不得转载。