project euler 99
来源:互联网 发布:kontakt mac 音源入库 编辑:程序博客网 时间:2024/05/21 17:00
Problem 99
Largest exponential
Comparing two numbers written in index form like 211 and 37 is not difficult, as any calculator would confirm that 211 = 2048 < 37 = 2187.
However, confirming that 632382518061 > 519432525806 would be much more difficult, as both numbers contain over three million digits.
Using base_exp.txt(right click and ‘Save Link/Target As…’), a 22K text file containing one thousand lines with a base/exponent pair on each line, determine which line number has the greatest numerical value.
NOTE: The first two lines in the file represent the numbers in the example given above.
最大的幂
比较两个如211和37这样写成幂的形式的数并不困难,任何计算器都能验证211 = 2048 < 37 = 2187。
然而,想要验证632382518061 > 519432525806就会变得非常困难,因为这两个数都包含有超过三百万位数字。
22K的文本文件base_exp.txt(右击并选择“目标另存为……”)有一千行,每一行有一对底数和指数,找出哪一行给出的幂的值最大。
注意:文件的前两行就是上述两个例子。
package projecteuler;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Collections;import java.util.List;import junit.framework.TestCase;public class Prj99 extends TestCase {public static final String PATH = "E:\\whua\\mathWorkspace\\test_jgraph\\src\\projecteuler\\Prj99.txt";public void testLargestExponential() {List<LargestExponential> dataList = readDatas();Collections.sort(dataList);System.out.println(dataList.get(dataList.size() - 1).id);}public static class LargestExponential implementsComparable<LargestExponential> {public int base;public int exp;public int id;public double val = 0;public LargestExponential(int base, int exp, int id) {super();this.base = base;this.exp = exp;this.id = id;}public LargestExponential calculateLog() {this.val = 1.0 * exp * Math.log10(base);return this;}@Overridepublic int compareTo(LargestExponential o) {if (val < o.val) {return -1;} else if (val == o.val) {return 0;} else {return 1;}}}List<LargestExponential> readDatas() {List<LargestExponential> ret = new ArrayList<LargestExponential>();try {BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(PATH), "utf8"));String str = "";int id = 1;while ((str = reader.readLine()) != null) {String[] strs = str.split(",");LargestExponential ex = new LargestExponential(Integer.parseInt(strs[0]), Integer.parseInt(strs[1]),id++).calculateLog();ret.add(ex);}reader.close();} catch (Exception ex) {ex.printStackTrace();}return ret;}}
- project euler 99
- Project Euler
- project euler
- Project Euler
- Project Euler Problem 99 Largest exponential
- Project Euler .net
- Project Euler 0
- Project Euler 1-6
- Project Euler 7-10
- Euler Project Problem 6
- project euler problem 11
- project euler problem14
- Project Euler Problem 81
- Project Euler Problem 60
- Project Euler Problem 59
- Project Euler Problem 58
- Project Euler Problem 57
- Project Euler Problem 16
- Java解析Json字符串--复杂对象
- Builder模式
- 怎样使android的view动画循环弹动
- 获得与设置系统默认设备主音量音量大小以及静音控制函数
- project euler 97
- project euler 99
- Objective-C中的Method Swizzling
- [Java开发之路](5)异常详解
- Core Animation基础
- (转)Android如何编程设置APP安装位置(外部存储或内部存储)?
- MQTT协议笔记之连接和心跳
- 欢迎使用CSDN-markdown编辑器
- Android5.0 Battery开发(一)
- (转)Android属性设置android:noHistory="true"