http://poj.org/problem?id=1426
Time Limit: 1000MS | Memory Limit: 10000K | |||
Total Submissions: 22375 | Accepted: 9190 | Special Judge |
Description
Input
Output
Sample Input
2 6 19 0
Sample Output
10 100100100100100100 111111111111111111题意; 给定一个数n,求用0,1组成的十进制数m,m将n整除
#include <iostream> #include <stdio.h> ///联想大数除法,能否除尽的问题 156589465498554689564154611656/56653能够除尽 using namespace std; int mod[524286]; int main() { int n,i; while(cin>>n) { if(n==0) break; mod[1]=1%n; for( i=2;mod[i-1]!=0;i++) mod[i]=(mod[i/2]*10+i%2)%n; i--; int op=0; while(i) { mod[op++]=i%2; i=i/2; } for(int j=op-1;j>=0;j--) cout<<mod[j]; cout<<endl; } ///cout << "Hello world!" << endl; return 0; } ///对大数取余,124/4 : 1%2=1; 1*10+2%4=0;得,已经 等于 0了,说明124能 ///整除2 ,, ///mod[]数组 存放余数,最高位放1,下一位放0||1,(i%2,当i为 奇数,下一位为1 ///,当i为偶数,下一位 取0),bfs 两个入口的分叉,mod[i/2]为i的上一级入口 ///最后一位 决定路线