九的余数
时间限制:3000 ms | 内存限制:65535 KB
难度:3
-
描述
-
现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。
-
输入
- 第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。
输出 - 输出n整除九之后的余数,每次输出占一行。 样例输入
-
3 4 5 465456541
样例输出 -
4 5 4
自然数n的位数小于等于一百万,这是一个超级大数,但因为是对九取余,有了很巧妙的方法,先观察下面表格:
不难发现,N mod 9的值等于N的第一位数字对9取余的值,所以一个数整除9的余数就等于这个数每一位相加所得和整除9的余数。
#include<iostream> #include<cstdio> using namespace std; char number[1000005]; int main(){ int i,test; scanf("%d\n",&test); while(test--){ int n=0; scanf("%s",number); for(int i=0;number[i]!='\0';i++) n+=number[i]-'0'; printf("%d\n",n%9); } }
总结:N mod 9的值等于N的第一位数字对9取余的值,所以一个数整除9的余数就等于这个数每一位相加所得和整除9的余数。 - 第一行有一个整数m(1<=m<=8),表示有m组测试数据;