九的余数
2011-07-16 15:52
190 查看
自然数123456789101112……198919901991被9除,余数是几? 根据“一个数被9除的余数,等于它各位数字之和被9除的余数”这一“弃九法”的原理,考虑本题的答案,只须考虑: A=1+2+3+4+5+6+7+8+9+1+0+1+1+……+1+9+8+9+1+9+9+0+1+9+9+1被9的余数,并将它与如下的B作比较: B=1+2+3+4+5+6+7+8+9+10+11+……+1989+1990+1991。 由于B中的每个数,都对应A中若干个数字之和(即该数的各位数字之和,如B中的+10就与A中的+1+0对应;B中的1991就与A中的+1+9+9+1对应).而两者对9来说,余数都是一样的[如B中1991÷9=221……2;A中的(1+9+9+1)÷9=20÷9=2……2].也就是说,它们可以互相替换,被9除时,不会影响余数.根据这个道理:A÷9与B÷9的余数是相等的.而后者是前1991个自然数的和,可以每9个数作为一段,即: B=(1+2+3+……+8+9)+(10+11+……+18+19)+……+(1981+……+1989)+1990+1991。 而每一段都能被9整除,最后剩下两个数,它除以9余数为3.所以本题答案应是:余数是3。
九的余数
时间限制:3000 ms | 内存限制:65535 KB难度:3
描述
现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。
输入第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。输出输出n整除九之后的余数,每次输出占一行。样例输入
3 4 5 465456541
样例输出
4 5 4
#include<iostream> #include<string> using namespace std; int main() { int sum,i,len; int m; string str; cin>>m; while(m--) { cin>>str; i=0;sum=0; len=str.length(); while(i<len) { sum+=str[i]-48; i++; } cout<<sum%9<<endl; } cin>>m; return 0; }
另附超大求超大数除以1-9的余数的讨论 网址 http://topic.csdn.net/u/20071025/21/3b654fb6-8cf7-4818-a4b3-95312a216527.html
相关文章推荐
- 带符号整数的除法与余数
- 获取商的余数
- NYOJ105九的余数
- 若n能被3整除,证明2^n除以7的余数为1
- javascript 取整,取余数
- nyoj-205--求余数--(大整数取模)
- 39页第一题 四则运算及其余数
- MATLAB遗传算法之 无放回式随机余数选择算子(remainder stochastic sampling with replacement)最新版
- ytu 1057: 输入两个整数,求他们相除的余数(带参的宏 + 模板函数 练习)
- nyist-508(余数求和)
- CQOIX2007余数之和
- NYOJ 题目105 九的余数(数学)
- 数字电路设计之恢复余数除法器的verilog实现
- nyoj205求余数(大整数求模)
- [BZOJ 1257] [CQOI2007] 余数之和sum 【数学】
- 51页 8题 输入整数a和b,如果a能b整出,输出算式和商,否则输出算式、整数商和余数
- 求余数 NYOJ 205
- nyoj 九的余数
- 取时间戳的余数
- 南阳ACM 求余数