关注
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搞惨了
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 面试体验最好和最差的公司 #
3590次浏览 23人参与
# 如何提高实习转正率? #
98861次浏览 568人参与
# 厦门银行科技岗值不值得投 #
17056次浏览 411人参与
# 烂工作和没工作哪个更痛苦? #
6371次浏览 106人参与
# 重来一次,我还会选择这个专业吗 #
443994次浏览 3943人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
2676次浏览 44人参与
# 银行笔面经互助 #
189903次浏览 1312人参与
# AI替代不了什么? #
5540次浏览 84人参与
# 春招至今,你收到几个面试了? #
11557次浏览 188人参与
# 现在入门AI首先要做什么? #
1256次浏览 39人参与
# 一人分享一个skill #
992次浏览 31人参与
# 学历VS实习,哪个更重要? #
17355次浏览 235人参与
# 选完offer后,你后悔学本专业吗 #
67936次浏览 267人参与
# Agent面试会问什么? #
4356次浏览 117人参与
# 职场吐槽大会 #
344839次浏览 2275人参与
# 总结:offer选择,我是怎么选的 #
280312次浏览 1547人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
10796次浏览 56人参与
# 机械人,你的秋招第一份简历被谁挂了 #
260943次浏览 2435人参与
# 月薪多少能在一线城市生存 #
149019次浏览 908人参与
# 2023届毁约公司名单 #
253259次浏览 1072人参与
# 一人分享一道面试手撕题 #
116608次浏览 2989人参与
