关注
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搞惨了
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 我的实习收获 #
23338次浏览 415人参与
# 在国企工作的人,躺平了吗? #
333092次浏览 3862人参与
# 实习吐槽大会 #
25365次浏览 124人参与
# 商战,最累的是我们 #
12647次浏览 49人参与
# 晒一晒你的工位 #
83745次浏览 298人参与
# 我的租房踩坑经历 #
18958次浏览 225人参与
# 穿越回高考你还会选现在的专业吗 #
17335次浏览 228人参与
# 毕业旅行去哪玩儿 #
953次浏览 29人参与
# 小厂实习有必要去吗 #
46339次浏览 267人参与
# 求职你最看重什么? #
69481次浏览 392人参与
# 牛友们,签完三方你在忙什么? #
94831次浏览 837人参与
# 夸夸我的求职搭子 #
190737次浏览 1890人参与
# 摸鱼打卡站 #
39278次浏览 687人参与
# 携程求职进展汇总 #
529611次浏览 3942人参与
# 产运销实习日记 #
51904次浏览 551人参与
# 打工人锐评公司红黑榜 #
145226次浏览 906人参与
# 网易求职进展汇总 #
101800次浏览 982人参与
# 你小时候最想从事什么职业 #
95448次浏览 1719人参与
# 作业帮求职进展汇总 #
52378次浏览 354人参与
# 高学历就一定能找到好工作吗? #
47527次浏览 589人参与