博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【HDOJ】1099 Lottery
阅读量:6982 次
发布时间:2019-06-27

本文共 1384 字,大约阅读时间需要 4 分钟。

题意超难懂,实则一道概率论的题目。求P(n)。

P(n) = n*(1+1/2+1/3+1/4+...+1/n)。
结果如果可以除尽则表示为整数,否则表示为假分数。

1 #include 
2 #include
3 4 #define MAXN 25 5 6 __int64 buf[MAXN]; 7 8 __int64 gcd(__int64 a, __int64 b) { 9 if (b == 0) return a;10 else return gcd(b, a%b);11 }12 13 int main() {14 int i, j, k, n;15 __int64 fz, fm, tmp, intr;16 17 buf[1] = 1;18 for (i=2; i<=22; ++i)19 buf[i] = i*buf[i-1]/gcd(i, buf[i-1]);20 21 while (scanf("%d", &n) != EOF) {22 fz = 0;23 fm = buf[n];24 for (i=1; i<=n; ++i)25 fz += fm/i;26 fz *= n;27 tmp = gcd(fz, fm);28 fz /= tmp;29 fm /= tmp;30 tmp = fz/fm;31 fz -= tmp*fm;32 if (fz == 0) {33 printf("%I64d\n", tmp);34 continue;35 }36 n = 0;37 intr = tmp;38 while (tmp) {39 ++n;40 tmp /= 10;41 }42 for (i=0; i<=n; ++i)43 printf(" ");44 printf("%I64d\n", fz);45 printf("%I64d ", intr);46 j = k = 0;47 while (fz) {48 ++j;49 fz /= 10;50 }51 tmp = fm;52 while (tmp) {53 ++k;54 tmp /= 10;55 }56 j = (j>k) ? j:k;57 for (i=0; i

 

转载于:https://www.cnblogs.com/bombe1013/p/3793581.html

你可能感兴趣的文章
华山论剑之浅谈iOS的生产线 工厂模式
查看>>
浅谈javascript异步发展历程
查看>>
在vscode使用editorconfig的正确姿势
查看>>
你用过 PropTypes 的这些类型检查么?
查看>>
枚举的使用示例
查看>>
runC爆严重漏洞影响Kubernetes、Docker,阿里云修复runC漏洞的公告
查看>>
力扣(LeetCode)146
查看>>
Understanding HBase and BigTable 译文
查看>>
Java™ 教程(泛型、继承和子类型)
查看>>
如何优雅的构建排序公式
查看>>
React手稿之 React-Saga
查看>>
比原链Bytom错误码一览
查看>>
Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)...
查看>>
sdedit使用方法介绍(混沌向)
查看>>
Nginx深入了解-进阶(二)
查看>>
脚本模式创建测试用例 - Katalon Studio
查看>>
SpringCloud核心教程 | 第二篇: 使用Intellij中的maven来快速构建Spring Cloud工程
查看>>
opencv python 模板匹配
查看>>
【前端数据结构基础】集合
查看>>
响应式布局设计
查看>>