ACM1013:Digital Roots
Problem Description
For example, consider the positive integer 24. Adding the 2 and the 4 yields a value of 6. Since 6 is a single digit, 6 is the digital root of 24. Now consider the positive integer 39. Adding the 3 and the 9 yields 12.
首先n=d1+10d2+…+10m-1dm。则n= 9d2+…+(10m-1-1)dm+ d1+d2+…+dm,把所有的位数相加结果就是9的倍数取余,余数为n’=d1+d2+…+dm,所以n与n’同模。最终,经过不断取余,n会化为个位数。
${\rm{x}} = \sum\limits_{i = 1}^n {{d_i}{{10}^i}} $
${10^i} \equiv {1^i} \equiv 1$
$x = \sum\limits_{i = 1}^n {{d_i}(\bmod 9)} $
设${\rm{x}} = \sum\limits_{i = 1}^n {{d_i}} $
f(x)=x(mod 9)
f(f(x)) = f(x) = x(mod 9)
完整的公式为
${\rm{digit\_root(n) = }}\left\{ \begin{array}{l}
0,if(n = 0)\\
9,if(n \ne 0,n \equiv 0\bmod 9)\\
n\bmod 9,if(n \ne 0\bmod 9)
\end{array} \right.$
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define SIZE 100000
char n[SIZE];
int main()
{
int ans, length;
while (scanf("%s", n)== 1 && n[0] != '0')
{
ans = 0;
length = strlen(n);
for (int i = 0; i < length; i++)
{
ans += n[i] - '0';
} printf("%d\n", ans%9==0?9:ans%9);
}
return 0;
}
ACM1013:Digital Roots的更多相关文章
- 【九度OJ】题目1124:Digital Roots 解题报告
[九度OJ]题目1124:Digital Roots 解题报告 标签(空格分隔): 九度OJ 原题地址:http://ac.jobdu.com/problem.php?pid=1124 题目描述: T ...
- POJ 1519:Digital Roots
Digital Roots Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25766 Accepted: 8621 De ...
- 九度OJ 1124:Digital Roots(数根) (递归)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2963 解决:1066 题目描述: The digital root of a positive integer is found by s ...
- 1013:Digital Roots
注意:大数要用字符串表示! sprintf:字符串格式化命令 主要功能:将格式化的数据写入某个字符串缓冲区 头文件:<stdio.h> 原型 int sprintf( char *buff ...
- HDU - 1310 - Digital Roots
先上题目: Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
- Digital Roots 分类: HDU 2015-06-19 22:56 13人阅读 评论(0) 收藏
Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...
- Digital Roots:高精度
C - Digital Roots Description The digital root of a positive integer is found by summing the digits ...
- 解题报告:hdu1013 Digital Roots
2017-09-07 22:02:01 writer:pprp 简单的水题,但是需要对最初的部分进行处理,防止溢出 /* @theme: hdu 1013 Digital roots @writer: ...
- Eddy's digital Roots
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...
随机推荐
- sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝、不能打开到主机的连接,在端口1433:连接失败等 解决方案
问题: sql 2000 无法连接远程数据库 sqlserver不存在或访问被拒绝 telnet 127.0.0.1 1433 提示:不能打开到主机的连接,在端口1433:连接失败 解决方案: ...
- 微信 公众号 小程序 授权 unionid 用户信息 实验总结
-*-*-*-*-*-*-*-*-*--*-*-*-1.小程序通过code获取用户openid的接口,如果用户曾经授权并未过期,或者用户关注过同主体的公众号,会带回unionID,但没有用户头像等信息 ...
- git使用教程2-更新github上代码
前面一篇已经实现首次上传代码到github了,迈出了装逼第一步,本篇继续讲如何把本地更新的代码同步更新到github上 一.clone代码 1.把大神的代码clone到本地,或者clone自己gith ...
- C++课堂作业(1)
github链接: https://github.com/deepYY/object-oriented/tree/master/Circle 作业题目 Create a program that as ...
- 虚拟机下的CentOS无法上网的解决办法
1.首先保证虚拟机的网络适配器为NAT模式 2.设置虚拟机的“编辑”-->“虚拟网络编辑器”中的VMnet8的DHCP的设置两个选项都勾选上. 3.设置物理主机,保证虚拟网关的IP地址为自动获取 ...
- 快速搭建redis单机版和redis集群版
单机版 第一步:需要安装redis所需的C语言环境,若虚拟机联网,则执行 yum install gcc-c++ 第二步:redis的源码包上传到linux系统 第三步:解压缩redis tar ...
- c++ 派生类的构造函数次序
#include <iostream> using namespace std; class CFatherSum //父类Sum { public: CFatherSum(int iRe ...
- git回滚线上代码
由于之前自己推代码的时候操作失误,push代码的时候没有push到线上的dev分支,而是push到了线上master分支(主要是因为没有在命令后写分支名,直接推到默认master分支上了),覆 ...
- 五子棋AI算法
原理框图总结 参考链接 http://blog.csdn.net/xiaoyu714543065/article/details/8746876 http://blog.csdn.net/pi9nc/ ...
- 6.7 块管理器BlockManager
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreem ...