UVA10375选择与除法
来源:互联网 发布:万能数据库查看器 编辑:程序博客网 时间:2024/06/07 23:37
题意:已知C(M,N)=M!/((M-N)!N!),输入四个整数p,q,r,s(p>=q,r>=s,p,q,r,s<=10000),计算C(p,q)/C(r,s)。输出保证不超过10^8,保留5位小数。
解题思路:直接就想到了Java的BigDcimal。处理除法的时候遇到了点小问题。对于除不尽的数,Java运算
的时候会报错,所以需要用到ROUND_HALF_UP关键词,具体的看代码。
import java.math.BigDecimal;import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner in = new Scanner(System.in); BigDecimal n,m; int a,b,c,d; while(in.hasNext()) { n=BigDecimal.ONE; m=BigDecimal.ONE; a=in.nextInt(); b=in.nextInt(); c=in.nextInt(); d=in.nextInt(); for(int i=1;i<=a;i++) { n=n.multiply(new BigDecimal(i)); } for(int i=1;i<=c-d;i++) { n=n.multiply(new BigDecimal(i)); } for(int i=1;i<=d;i++) { n=n.multiply(new BigDecimal(i)); } for(int i=1;i<=a-b;i++) { m=m.multiply(new BigDecimal(i)); } for(int i=1;i<=b;i++) { m=m.multiply(new BigDecimal(i)); } for(int i=1;i<=c;i++) { m=m.multiply(new BigDecimal(i)); } System.out.println(n.divide(m,5,BigDecimal.ROUND_HALF_UP)); } }}
阅读全文
0 0
- uva10375选择与除法
- UVA10375选择与除法
- uva10375 - Choose and divide(选择与除法)
- 例题10-3 选择与除法 UVa10375
- uva10375 选择与除法 唯一分解定理
- 例题10-3 选择与除法(Choose and Divide,UVa10375)
- uva10357 选择与除法
- uva 10375 选择与除法
- 【uva 10375】选择与除法
- 串行除法与并行除法
- uva10375(数论)
- 筛法求素数,组合数公式,唯一分解定理(选择与除法,uva 10375)
- 负数除法与正数除法原理
- 位移与乘法/除法
- 取余与除法
- 移位与除法
- 除法(/)与求余(%)
- 乘法、除法与 0
- Android 用文件存储数据
- tensorflow构建手写数字图像识别---softmax算法
- 17- ++i和i++汇编代码
- C语言基础--测试程序中实现对FPS的控制
- 第十九课、C 函数指针与回调函数
- UVA10375选择与除法
- 笔试_HTML试题(1)
- Django模板(编写html代码
- /etc/profile 与 /etc/environment
- Quartz实现Oracle定时备份
- 51nod 1779 逆序对统计 [状压dp]
- 如在汉诺塔游戏中,我们希望将塔A上的n个盘子,通过塔B移动到塔C,则对于任意输入的n,给出移动的步骤
- 树莓派系统的安装及配置
- 用mybatis的generator插件在项目中自动生成dao及entity