加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

HDU 1063/POJ 1001-Exponentiation(大数类)

发布时间:2020-12-14 03:02:10 所属栏目:大数据 来源:网络整理
导读:Exponentiation Time Limit: 1000/500 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6948????Accepted Submission(s): 1967 Problem Description Problems involving the computation of exact values of very larg

Exponentiation

Time Limit: 1000/500 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6948????Accepted Submission(s): 1967


Problem Description
Problems involving the computation of exact values of very large magnitude and precision are common. For example,the computation of the national debt is a taxing experience for many computer systems.?

This problem requires that you write a program to compute the exact value of R n?where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25.?
?

Input
The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6,and the n value will be in columns 8 and 9.
?

Output
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer.
?

Sample Input
  
  
95.123 12 0.4321 20 5.1234 15 6.7592 9 98.999 10 1.0100 12
一开始没考虑整数的情况WA一次。。
import java.io.*;
import java.util.*;
import java.math.*;
public class Main {
       public static void main(String[] args){
    	   Scanner in=new Scanner(System.in);
    	   BigDecimal a;int n,sta,end;
    	   while(in.hasNext()){
    		   int flag=1;
    		   a=in.nextBigDecimal();n=in.nextInt();
    		   String y=new String(a.toPlainString());
    		   for(int i=0;i<y.length();i++)
    			   if(y.charAt(i)=='.'){
    				   flag=0;
    				   break;
    			   }
    		   if(flag!=0){
    			   System.out.println(a.pow(n));
    			   continue;
    		   }
    		   a=a.pow(n);
    		   String x=new String(a.toPlainString());
    		   sta=0;end=x.length()-1;
    		   while(x.charAt(sta)=='0') sta++;
    		   while(x.charAt(end)=='0') end--;
    		   while(x.charAt(end)=='.') end--;
    		   for(int i=sta;i<=end;i++)
    			   System.out.print(x.charAt(i));
    		   System.out.println("");
    	   }
       }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读