您的位置:首页 > 其它

POJ 1426 找倍数 Find The Multiple(枚举+同余模应用)

2017-02-14 22:07 621 查看
 同余模定理:

(a*b)%n = (a%n *b%n)%n;
(a+b)%n = (a%n +b%n)%n;

详情点击打开链接

题意:给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。

#include<cstdio>
const int maxn=200+10;
const int N=1e6;
int mod
;
int t[maxn];
int main(){
int n;
while(scanf("%d",&n)==1 && n){
mod[1]=1%n;
int i;
for(i=2;mod[i-1]!=0;i++){
mod[i]=(mod[i/2]*10+i%2)%n;  //枚举,i%2=0、1;
}
i--;
int cnt=0;
while(i){
t[cnt++]=i%2;
i/=2;
}
for(int j=cnt-1;j>=0;j--)printf("%d",t[j]);
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: