Project Euler 16 Power digit sum( 大数乘法 )
2024-08-26 10:50:09
题意:
215 = 32768,而32768的各位数字之和是 3 + 2 + 7 + 6 + 8 = 26。
21000的各位数字之和是多少?
思路:大数乘法,计算 210 × 100 可加速计算,每次超过1000进位
/*************************************************************************
> File Name: euler016.c
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月27日 星期二 20时41分24秒
************************************************************************/
#include <stdio.h>
#include <inttypes.h>
#define D_VALUE 1000
int32_t main() {
int32_t ans[1001] = {0};
ans[0] = ans[1] = 1; // ans[0] 记录位数
for (int32_t i = 0 ; i < 100 ; i++) {
for (int32_t j = 1 ; j <= ans[0] ; j++) {
ans[j] *= 1024;
}
for (int32_t j = 1 ; j <= ans[0] ; j++) {
if (ans[j] >= D_VALUE) {
ans[j + 1] += ans[j] / D_VALUE;
ans[j] %= D_VALUE;
if (j == ans[0]) ans[0]++;
}
}
}
int32_t sum = 0;
for (int32_t i = 1 ; i <= ans[0] ; i++) {
while (ans[i]) {
sum += ans[i] % 10;
ans[i] /= 10;
}
}
printf("%d\n",sum);
return 0;
}
最新文章
- >;hibernate-session中的方法
- BC之Claris and XOR
- .NET笔记(一)
- 八、Android学习第七天——XML文件解析方法(转)
- ACA烤箱菜单各项温度
- float浮动问题:会造成父级元素高度坍塌;
- 编译hadoop eclipse的插件(hadoop1.0)
- cri-o pod 创建源码分析
- linux笔记:网络命令ping,traceroute,ifconfig,netstat;挂载和卸载命令mount,umount
- 支付宝修改回调地址后 issign=false
- u-boot 环境变量参数设置
- 转:昨天去参加adobe AIR发布会
- python学习第十八天 --文件操作
- 记录hyperic-hq搭建开发环境遇到的坑
- python——迭代器和生成器
- Mysql双机热备配置(超详细多图版)
- oracle merge同时包含增、删、改
- 序列化模块2 pickle
- 【POJ】1704.Georgia and Bob
- mysql中distinct
热门文章
- django orm多条件查询及except处理不存在记录的样码
- [bzoj2588][Spoj10628]Count on a tree_主席树
- Mycat连接数据库之后导致表名全小写的问题分析研究
- HDU 1238
- 多个线程运行结束之后主线程再执行CountDownLatch
- Java设计模式菜鸟系列(十五)建造者模式建模与实现
- 64位只有一种调用约定stdcall
- 修改linux内核的启动logo和禁用启动光标【转】
- 一个php+jquery+json+ajax实例
- Xposed那些事儿 — xposed框架的检测和反制