随笔 - 147  文章 - 71  trackbacks - 0
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

常用链接

留言簿(1)

随笔分类(146)

随笔档案(147)

文章分类(28)

文章档案(28)

喜欢的Blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜

http://acm.pku.edu.cn/JudgeOnline/problem?id=1001

【题意简述】求浮点数的n次幂。
【分析】高精度计算,运用Math.BigDecimal。
注意:
1.R的值并不一定是6位,也有可能是少于6位,但最多6位。如0.12、23什么的。
1.要包括R=0和n=0的情况。
3.因为是循环输入,所以,每次运算结束时记得要把存储空间清零。
4.小数点有三种位置可能:(1).123类型,小数点在最前面;(2)0.123类型,小数点在数字中间;(3)123.,小数点在数字的最后。
5.多余的零的存在,如 000012,000.02,0011.2,12.000,00.000,等都要考虑到。
6.输出格式。0.123应该是.123,123.应该是123 。

import java.util.*;
import java.io.*;
import java.math.*;

public class poj_1001{
    
    
public static void main(String rgs[]) throws Exception
    
{
        Scanner in
=new Scanner(System.in);
        
while(in.hasNext()){
            
char[] c = Double.toString(in.nextDouble()).toCharArray();   
            BigDecimal bd 
= new BigDecimal(c);  
            
int i,n,power = in.nextInt();
            BigDecimal result 
= bd.pow(power);  
            String s 
= result.toPlainString();
            n
=s.length();            
            
for(i=n-1;;i--)
                
if(s.charAt(i) != '0')
                    
break;
            
if(s.charAt(i) == '.')
                i
--;
            s
=s.substring(0,i+1);
            
if (s.charAt(0== '0'){
                
if(s.equals("0"))
                    System.out.println(
0);
                
else
                    System.out.println(s.substring(
1));
            }

            
else  
                System.out.println(s) ;    
        }

    }

}
posted on 2009-09-06 10:26 飞翔天使 阅读(924) 评论(0)  编辑  收藏 所属分类: poj

只有注册用户登录后才能发表评论。


网站导航: