NYOJ 155高精度计算
来源:互联网 发布:手机屏幕条纹修复软件 编辑:程序博客网 时间:2024/04/30 19:37
题意:对数值很大、精度很高的数进行高精度计算是一类十分常见的问题。比如,对国债进行计算就是属于这类问题。
现在要你解决的问题是:对一个实数R( 0.0 < R < 99.999 ),要求写程序精确计算 R 的 n 次方(Rn),其中n 是整数并且 0 < =n <= 25。
代码1:
import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int a;
BigDecimal b;
Scanner cin = new Scanner(System.in);
while (cin.hasNextBigDecimal()) {
b = cin.nextBigDecimal();
a = cin.nextInt();
b = b.pow(a);
System.out.println(trim0(b.stripTrailingZeros().toPlainString(), false, false));
}
}
public static String trim0(String num, boolean f0dot, boolean fdot0) {
int begin = 0;
int end = num.length() - 1;
while (num.charAt(begin) == '0') {
++begin;
}
if (f0dot && num.charAt(begin) == '.') {
--begin;
}
while (num.charAt(end) == '0') {
--end;
}
if (num.charAt(end) == '.') {
if (fdot0) {
++end;
} else {
--end;
}
}
if (begin <= end) {
return num.substring(begin, end + 1);
} else {
return "0";
}
}
}
//另一个代码:
import java.math.*;
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
while(in.hasNext()){
BigDecimal val=in.nextBigDecimal();
int n=in.nextInt();
BigDecimal ret=val.pow(n).stripTrailingZeros();
System.out.println( ret.toPlainString().replaceAll("^0", "") );
}
}
}
- NYOJ 155高精度计算
- nyoj 155 求高精度幂
- NYOJ-155-求高精度幂
- NYOJ 155 求高精度幂
- NYOJ-155-求高精度幂
- nyoj 155求高精度幂
- NYOJ 155-求高精度幂
- NYOJ 155 求高精度幂【大数问题】
- NYOJ 155 POJ 1001 求高精度幂
- NYOJ 155题 求高精度幂
- Nyoj-155 求高精度幂 (java实现
- poj 1001Exponentiation||nyoj 155 高精度幂
- nyoj 155 求高精度幂 【大数】
- NYOJ 155 求高精度幂(java)
- 高精度计算
- 高精度计算
- 高精度计算
- 高精度计算
- HiberateTemplate
- [Unity3D]Unity3D游戏开发之数据持久化PlayerPrefs的使用
- 看看国外的本科生能做什么?
- linux grep命令详解
- 黑马程序员_学习笔记第17天——IO流、字符流
- NYOJ 155高精度计算
- 系统测试和集成测试的区别
- Computer - Win7隐藏计算机中收藏夹和库
- 微动态更好的将微信与微博结合起来
- Go语言 GC优化经验分享
- 添加硬盘驱动 - 写磁盘
- PHP程序编码规范
- java文本框中读取回车
- 黑马程序员_学习笔记第18天——缓冲区、转换流、字节流