题目链接
https://www.dotcpp.com/oj/contest4235_problem3.html
题目描述
不可否认,小强是一名数学天才,大家都这么说。天才小强的两大最新发现如下:(1) 正整数n除3的余数,等价于,正整数n的各位数字之和除3的余数;(2) 正整数n除9的余数可以通过这样的方法来计算:计算n 的各位数之和,设为m,如果m已经是一位数,那么余数就是m;否则设n=m,重新进行计算n的各位数之和m,直到m是一个一位数。但是,正整数除1,2,4,5,6,7,8,也存在类似的性质吗?这真是一个难题啊!小强想睡觉了,不去管了。现在请你计算一下正整数n除一位数m的余数。文件中有一些数对,一为大整数(可能大到100位)n,另一为一位数m(>0)。求其n除以m的余数。
输入
无
输出
无
样例输入
23 7 123 9
样例输出
2 6
解题思路
一:此题为大数的取余,为了方便定义一个char类型的数组。
二:接着对数组进行循环,((a[i]-'0')*10+a[i+1])%m用来进行数的取余。
三:最后,再次取余输出。
代码
#include<stdio.h>
int main()
{
int i,j,k,t,m,a,b,c,d;
char n[10000];
while(scanf("%s %d",n,&m)!=EOF)
{
int len=strlen(n);
a=n[0]-'0';//获取首位数
for(i=1;i<len;i++)//因为a[0]已获取,所以从1开始
{
a=a%m;//取余
a=a*10+n[i]-'0';//余数乘以10再加本位上的数
}
printf("%d\n",a%m);
}
return 0;
}