zcmu 1097
1097: 求余
Description
小学题目,给定除数和被除数,求余数
Input
多组测试数据,每组测试数据包含两个整数n,k(1<=n<=10^2000,1<=k<=1000)
Output
对于每组测试数据,输出n%k
Sample Input
12 4 12 5
Sample Output
0 2
思路:同余定理,(a+b) % m = ((a % m) + (b % m)) % m 。
代码如下:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<time.h>
using namespace std;
#define FORA(i,x,y) for(int i = x; i < y; i++)
#define FORB(i,x,y) for(int i = x; i <= y; i++)
#define FORC(i,y,x) for(int i = y; i > x; i--)
#define maxn 100000
#define INF 1000000000
#define LL long long
const int mod = 1000000;
char a[maxn];
int b[maxn];
int main(){
int n,m;
while(~scanf("%s %d",a,&m)){
int t = strlen(a);
int ans = 0;
FORA(i,0,t){
ans = (ans * 10 + a[i] - '0') % m;
}
printf("%d\n",ans);
}
return 0;
}
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#include<time.h>
using namespace std;
#define FORA(i,x,y) for(int i = x; i < y; i++)
#define FORB(i,x,y) for(int i = x; i <= y; i++)
#define FORC(i,y,x) for(int i = y; i > x; i--)
#define maxn 100000
#define INF 1000000000
#define LL long long
const int mod = 1000000;
char a[maxn];
int b[maxn];
int main(){
int n,m;
while(~scanf("%s %d",a,&m)){
int t = strlen(a);
int ans = 0;
FORA(i,0,t){
ans = (ans * 10 + a[i] - '0') % m;
}
printf("%d\n",ans);
}
return 0;
}