取余,对我来说应该是熟练掌握了的. 其实最常见的取余就是把一个数的每一位单独拿出来看吧。
机试书上提到的,仅使用取余符号有可能得到负数,所以一般写成:
(a%b+b)%b
这样不仅能对可能出现的负数做修正,同时对出现的0和正余数也不会干扰。
并且取余满足分配率:
(a+b)%c=(a%c+b%c)%c
(a*b)%c=(a%c*b%c)%c
一道单独取出每一位的例题:
AC代码:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main()
{
int A,B;
while(scanf("%d%d",&A,&B)!=EOF)
{
if(A==0 && B==0)
break;
int K;
cin>>K;
//取后面K位来依次比较
int flag=1;
int AA=A; //这个副本!!!要注意,不然你这儿改了之后,后面A+B就不对了。
int BB&#