九的余数
时间限制:
3000 ms | 内存限制:
65535 KB
难度:
3
-
描述
-
现在给你一个自然数n,它的位数小于等于一百万,现在你要做的就是求出这个数整除九之后的余数。
-
输入
-
第一行有一个整数m(1<=m<=8),表示有m组测试数据;
随后m行每行有一个自然数n。
输出
- 输出n整除九之后的余数,每次输出占一行。 样例输入
-
3 4 5 465456541
样例输出
-
4 5 4
-
个人理解:该题有两种思路。第一种思路是根据十进制将该数求出来,然后除以9取余;第二种思路是将该数各个位数相加取余。两者均是通过字符串的形式对此题进行处理,注意字符串的读取形式以及作for循环当其为'\o'时退出两点。
1: -
结果 时间 内存 语言 Accepted 56 1084 C #include<stdio.h> int main() { int n,m,i,s; char a[1000000]; scanf("%d",&n); while(n--) { scanf("%s",a); for(i=s=0;a[i]!='\0';i++) s=(s*10+a[i]-48)%9;//'\0'对应Ascll值为48; printf("%d\n",s); } return 0; }
-
2:
-
结果 时间 内存 语言 Accepted 24 1216 C #include <stdio.h> char num[1000000]; int main() { int i,m,sum; scanf("%d",&m); while(m--) { scanf("%s",num); for(i=sum=0;num[i]!='\0';++i) sum+=num[i]-48; printf("%d\n",sum%9); } return 0; }
-
第一行有一个整数m(1<=m<=8),表示有m组测试数据;