projecteuler No.80 Square root digital expansion
来源:互联网 发布:淘宝优站从哪里进去 编辑:程序博客网 时间:2024/06/05 15:35
原文题目链接:
http://projecteuler.net/problem=80
翻译题目链接:
http://pe.spiritzhang.com/index.php/2011-05-11-09-44-54/81-80
通过人数:9843
这道题目和projecteuler No.64 Odd period square roots的内容差不多,代码我也基本复用的,在此就不多说了。
只想说一点,就是说无论我的理解还是中文翻译认为的都是求小数点后面100位的和,但这道题我纠结了很久才发现最后要求的是整数部分加上小数部分前99位的和...这也就是为什么我计算sqrt(2)的时候总是得481而题干中说是475了。
见代码:
package test;import java.math.*;;public class Main {public static void main( String args[] ){BigDecimal N2 = new BigDecimal(2);BigDecimal N = new BigDecimal(1);int ans=0;for (int i=2;i<=100;i++){BigDecimal Ni = new BigDecimal(i);while(true){BigDecimal NN = N.multiply(N);NN = NN.add(Ni);NN = NN.divide(N2);NN = NN.divide(N, 200, BigDecimal.ROUND_FLOOR);if (NN.equals(N))break;N = NN;}BigDecimal NN=N.multiply(N);if (NN.setScale(0, BigDecimal.ROUND_FLOOR).equals(Ni))continue;String t = N.toString();int temp_n = 0;for (int j=0;;j++){char temp_c = t.charAt(j);if (temp_c < '0' || temp_c > '9')continue;temp_n++;ans += temp_c - '0';if (temp_n==100)break;}}System.out.print(ans+"\n");}}
以上只是我做题时的解法。
如果有更好的解法、更好的思路,欢迎评论讨论~O(∩_∩)O~
0 0
- projecteuler No.80 Square root digital expansion
- Project Euler:Problem 80 Square root digital expansion
- projecteuler No.120 Square remainders
- projecteuler No.64 Odd period square roots
- No.3 Add Digits (digital root)
- Digital Root
- digital root
- digital root
- hdu_4394 Digital Square (BFS)
- DFS+数学:Digital Square
- hdu 4394 Digital Square
- hdu 4394 Digital Square
- HDU 4394Digital Square
- HDU4394 Digital Square
- Digital Square HDU
- Digital Square (DFS)
- Digital Square(HDU-4394)
- Square root
- java笔记11
- setup wildfly8.0
- tomcat移动位置后相关问题解决方案
- 重新认识动态规划以及递归
- Scala School 笔记(五)--高级类型
- projecteuler No.80 Square root digital expansion
- TOJ 1050 Courses 二分匹配
- matlab冒号的用法总结
- Easyui的DateBox日期格式化
- 编写一个文字游戏
- Undefined symbols for architecture i386;
- Android 开源的真相: 无法fork
- java 学习笔记 随机数产生的两种办法Math.random()和Random类
- 移动计算最新科研成果评述