关注
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.Scanner;
public class Demo2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int n = sc.nextInt(); int s = sc.nextInt(); System.out.println(fun(n, s)); } } private static String fun(int n, int s) { if (s <= n) return "1"; if (s > 6 * n) return "0"; long[][] dp = new long[n][s + 1]; for (int i = 0; i < dp[0].length; i++) { if (i >= 1 && i <= 6) dp[0][i] = 1; } for (int i = 1; i < dp.length; i++) { for (int j = 0; j < dp[0].length; j++) { for (int mm = 1; j - mm > 0&&mm<=6; mm++) { dp[i][j] += dp[i - 1][j - mm]; } } } for (int i = 0; i < dp.length; i++) { System.out.println(Arrays.toString(dp[i])); } BigDecimal aa = new BigDecimal(0); for (int i = 0; i < dp[0].length-1; i++) { aa = aa.add(new BigDecimal(dp[n-1][i])); } BigDecimal bb = new BigDecimal(6); BigDecimal pow = bb.pow(n); aa = pow.subtract(aa); BigDecimal gcd = gcd(pow, aa); return aa.divide(gcd).toString()+"/"+pow.divide(gcd).toString(); } public static BigDecimal gcd(BigDecimal aa, BigDecimal bb) { if (bb.toString().equals("0")) return aa ; else{ BigDecimal[] divideAndRemainder = aa.divideAndRemainder(bb); return gcd(bb, divideAndRemainder[1]); } }
} //被bigdecimal搞惨了
查看原帖
点赞 评论
相关推荐
01-30 16:13
浙江大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 牛客吐槽大会 #
26041次浏览 326人参与
# 工作前VS工作后,你的心态变化 #
38606次浏览 267人参与
# 秋招想进国企该如何准备 #
125541次浏览 617人参与
# 你的mentor是什么样的人? #
51692次浏览 741人参与
# 从mentor身上学到了__ #
55701次浏览 886人参与
# 我和mentor的爱恨情仇 #
106798次浏览 969人参与
# 我的省钱小妙招 #
37644次浏览 446人参与
# 机械人避雷的岗位/公司 #
45025次浏览 320人参与
# 在大厂上班是一种什么样的体验 #
15711次浏览 225人参与
# 为了减少AI幻觉,你注入过哪些设定? #
7987次浏览 219人参与
# 职场上哪些行为很加分? #
323307次浏览 3619人参与
# 通信/硬件求职避坑tips #
140058次浏览 1087人参与
# 论秋招对个人心气的改变 #
16620次浏览 252人参与
# 你觉得mentor喜欢什么样的实习生 #
48822次浏览 1002人参与
# 你现在会用到哪些AI技能? #
24882次浏览 137人参与
# 牛客AI体验站 #
9746次浏览 233人参与
# 毕业论文进行时 #
27756次浏览 153人参与
# 运营来爆料 #
77516次浏览 467人参与
# 程序员找工作至少要刷多少题? #
24877次浏览 316人参与
# 过年最难忘的一件事 #
23402次浏览 179人参与
OPPO公司福利 1133人发布
查看9道真题和解析