幂的数字和
来源:互联网 发布:语音翻译软件 编辑:程序博客网 时间:2024/05/16 10:41
幂的数字和
2^15 = 32768,而32768的各位数字之和是 3 + 2 + 7 + 6 + 8 = 26。
2^1000的各位数字之和是多少?
package EULER16;import java.util.HashMap;import java.util.Map;/** * Created by Administrator on 2016/8/5. * 幂的数字和 * 2^15 = 32768,而32768的各位数字之和是 3 + 2 + 7 + 6 + 8 = 26。 * 2^1000的各位数字之和是多少? * 这个就是看那么大的数怎么存,没发现有什么规律之类的 * 注意: * 1、遍历map过程中修改该map会有异常 * 2、for(Long key:map.keySet()),这种方式key不是挨着的 */public class EULER16 { public static void main(String[] args){ long start = System.currentTimeMillis(); Map<Long,String> map = new HashMap<Long, String>(); map.put(0l,"1"); for (int i=0;i<1000;i++){ for (long j=0;j<map.size();j++){ float value = Float.valueOf(map.get(j)); value *= 2; int num = (int)value; map.put(j,num%10000+""); if (num/10000>0) {//其实不是0就是1,乘二后进位只可能为一 if (map.get(j + 1) != null) { float nextNum = Float.valueOf(map.get(j + 1)); nextNum += 0.5;//从地位开始遍历,之后会乘2,相当于进位1 map.put(j+1,nextNum+""); } else { map.put(j+1,"1"); break; } } } } long sum = 0; String total = ""; for (Long key:map.keySet()){ String num = map.get(key); for (char n:num.toCharArray()){ sum += Integer.valueOf(String.valueOf(n)); } total = map.get(key)+total; } System.out.println(total); System.out.println(sum); long end = System.currentTimeMillis(); System.out.print("总用时:"+(end-start)+"毫秒"); }}
0 0
- 幂的数字和
- 数字和的个数
- 数字的因子和
- 数字子集的和排序
- 字符串和数字的互换
- 字母和数字的转换
- 字符串和数字的转化
- 数字和字符串的转换
- 字符串和数字的转换
- 数字和字符串的转换
- 把数字拆分成2的幂的和
- ASCII字符形式的数字和HEX形式的数字
- 数字验证和数字字母的混合验证
- 连续数字之和和输入的数字相等
- JNI的数字和数字字符串类型要明确区分。
- 提取字符串的数字和非数字字符
- 用指针实现数字a和数字b的互换
- Flex数字类型和Java数字类型的比较
- sql 2008 修改链接服务器 Rpc &Rpc Out
- VS2013安装
- Sql Update 多表更新
- android textview改变部分文字的颜色和string.xml中文字的替换
- android 屏幕适配
- 幂的数字和
- 14. Longest Common Prefix
- 剑指offer-矩阵中的路径
- Oracle OMF特性浅析
- java 配置文件的路径问题
- response.setContentType()的作用及参数
- 高效工作策略
- 注意事项
- AS中Git与GitHub的使用碰到的常见问题