题意:求给定数r的n次幂。
思路:大数,用java。
其中几个点:
(1)java的多组输入写法:
Scanner cin=new Scanner(System.in);
while(cin.hasNext())//多组输入数据;
...
(2)高精度大数:
BigDecimal x=cin.nextBigDecimal();
(3)一些函数的运用:
String s=x.toPlainString();//变成不是用指数形式表示的字符串;
s.substring(0,1)//substring为截取左闭右开区间子串的方法,
//若只引入一个参数,则从左端点一直截取到结尾;
x=x.stripTrailingZeros();//去除数末尾多余的0;
代码如下:
import java.math.BigDecimal;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner cin=new Scanner(System.in);
while(cin.hasNext())//多组输入数据;
{
BigDecimal x=cin.nextBigDecimal();
int r=cin.nextInt();
x=x.pow(r);//求幂次方的函数;
String s=x.toPlainString();//变成不用指数形式表示的字符串;
boolean flag=false;
if(s.substring(0,1).equals("0"))//substring为截取左闭右开区间子串的方法
{ //若只引入一个参数,则从左端点一直截取到结尾;
flag=true;
}
x=x.stripTrailingZeros();//去除末尾多余的0;
s=x.toPlainString();
if(flag)
{
s=s.substring(1);//从1开始截取到最后一位;
}
System.out.println(s);
}
}
}