九的余数
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
-
现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。
- 输入
- 第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。 - 输出
- 输出n整除九之后的余数,每次输出占一行。
- 样例输入
-
3 4 5 465456541
- 样例输出
-
4 5 4
- 来源
- [苗栋栋]原创
- 上传者
- 苗栋栋
- 思路分析:由数学知识可知,1%9=1,那么10%9=1,100%9=1;1000%9=1。。。。。依次类推,2%9=2, 200%9=2。。。。同理可得3%9. 4%9 5%9 6%9 7%9 8%9 9%9 所以最后输入这个数对9的余数就等于这个数各个位上的数字之和对9的取余即可
- 由于输入数字位数太长, 故采用字符数组存放 。剩下的就横简单了
- 代码:
- #include "stdio.h"
#include "string.h"
#define N 1001000
char s[N];
int main()
{ int i,j,k,n;
int sum;
scanf("%d",&n);
while(n--)
{ memset(s,'0',sizeof(s));
scanf("%s",s);
k=strlen(s);
sum=0;
for(i=k-1,j=0;i>=0;i--)
{sum=(sum+(s[i]-'0'))%9; //获得各个位上累加和
}
printf("%d ",sum);
/* for(i=j-1;i>=0;i--)
printf("%d",a[i]);
printf(" ");*/
}
return 0;
}