uva 748 Exponentiation
来源:互联网 发布:梯形螺纹加工编程实例 编辑:程序博客网 时间:2024/04/29 12:47
这道题用Java的BigDecimal要好做一些,算次方的时候用二分法优化一下应该就不会有超时发生了。
注意输出格式的设置,不能用科学计数法输出,还要去掉前后的零,去掉后面的零用BigDecimal的成员函数stripTrailingZeros(),
然后调用String类的toPlainString()函数得到不用科学计数法的字符串,最后自己写个循环去掉前面的零就行了。
import java.math.BigDecimal;import java.util.Scanner;public class Main{public static BigDecimal func(BigDecimal num, int n){if(n == 1)return num;if(n%2 == 0)return func(num,n/2).multiply(func(num,n/2));elsereturn func(num,n/2).multiply(func(num,n/2)).multiply(num);}public static void main(String[] args){Scanner scanner = new Scanner(System.in);Scanner str_scan;String s = "";String temp;BigDecimal num;int n;while(scanner.hasNextLine()){s = scanner.nextLine();str_scan = new Scanner(s);temp = str_scan.next();num = new BigDecimal(temp);n = str_scan.nextInt();/*System.out.println("num1="+num1);System.out.println("num2="+num2);*/s = func(num,n).stripTrailingZeros().toPlainString();if(s.charAt(0) == '0'){int i;for(i=0; i<s.length(); i++)if(s.charAt(i) != '0')break;System.out.println(s.substring(i));}else{System.out.println(s);}}}}
- UVa 748 Exponentiation
- UVa OJ 748-Exponentiation
- uva 748 - Exponentiation
- UVA 试题 748 - Exponentiation
- UVa 748 - Exponentiation
- UVa 748 - Exponentiation
- UVa 748Exponentiation
- uva 748Exponentiation
- UVA 748 Exponentiation
- UVA 748 - Exponentiation
- UVA 748 Exponentiation
- UVa 748 - Exponentiation
- uva 748 Exponentiation
- UVa 748 - Exponentiation
- UVa:748 - Exponentiation
- UVa 748 - Exponentiation
- UVa-748-Exponentiation
- UVA - 748 Exponentiation
- 基于OpenWRT的软件开发流程
- Android中自定义PopupWindow,动态弹窗。
- 关于cocos2d-x几种画图方法的用法与思考
- 【leetcode】Merge Two Sorted Lists
- 一只小蜜蜂
- uva 748 Exponentiation
- 两个数相乘,小数点后位数没有限制,请写一个高精度算法
- 华为公司2014届校园招聘软件类上机考试样题 .
- ucos代码分析(一):任务创建及系统任务
- 关于Solr评分修改
- 明白自己想要的,不要盲目读研
- 设计模式读书笔记-----享元模式
- iOS开发者必备:六大图片、图标处理类工具
- 找出一个字符串中最长的数字串输出