hdu 1013
来源:互联网 发布:局域网控制电脑软件 编辑:程序博客网 时间:2024/06/05 16:37
题目大意:给出一个整数。让你求它各数位数字之和.(若在这一过程中得到的数字之和>=10则继续运算).
解题思路:其实这道题抽象一下就是,要你"遍历一个数字".但是与简单的遍历一个数字不同的是,这道题的数字可能很长,超出所有整数类型所能表示
的范围。所以在对数字进行便利的基础上我们还要进行一些其他的处理。
代码如下:
/* * 1032_2.cpp * * Created on: 2013年8月11日 * Author: Administrator */#include <iostream>using namespace std;int main(){char c;int sum = 0;while(c = getchar()){if(c =='\n'){cout<<sum <<endl;sum = 0;//每次将sum输出后都要将sum清零,用来记录下一个数的digit rootc = getchar();if(c == '0'){break;}else{sum += c - '0';}continue;}sum += c - '0';/** * 其实只需处理一次即可,因为对sum处理的及时,所以sum不可能大于18 * 即,用if来判断即可 */while(sum > 9){sum = sum %10 + sum/10;}}}
以下代码是WA代码。主要是测试数据中的数据可能很大。超出int。。。。之类的所能表示的范围.
/* * 1013_1.cpp * * Created on: 2013年8月11日 * Author: Administrator */#include <iostream>using namespace std;int getroot(__int64 n) {int sum =0;if(n<10){return n;}else{while(n!=0){int temp = n%10;sum += temp;n /= 10;}return sum>=10?getroot(sum):sum;}}int main() {__int64 n;while (cin >> n) {int sum = getroot(n);cout << sum << endl;}}
- hdu 1013
- hdu 1013
- hdu 1013
- HDU 1013
- hdu 1013
- hdu 1013
- hdu 1013
- HDU-1013
- hdu 1013
- HDU 1013
- HDU 1013
- HDU 1013
- hdu 1013
- hdu 1013
- HDU-1013
- HDU 1013
- hdu 1013
- HDU 1013
- hdu1501
- Linux grep命令
- 删除Oracle数据库时常见问题(注册表方面,文件目录方面,环境变量方面)
- Linux使用C读取文件目录
- hdu——poj2470—— Ambiguous permutations
- hdu 1013
- 动手写简单的嵌入式操作系统一
- DC_CheckWatchdog
- java中的BigInteger
- ARM指令集与Thumb指令集的区别
- struts学习(3)——struts核心思想
- 编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器)
- modem_hotplug 脚本解析
- java中遍历map的几种方法介绍