给一个数n(1 <= n <= 200),求它的非零倍数m,
m 是一个仅含有1或0的十进制数,m不超过100位(十进制),求一个m值即可。
解题思路
这道题我读了几遍,竟然没读懂。知道题意就很简单了,BFS,从1开始暴力搜索。
代码
#include<stdio.h>#include<queue>constunsignedlong MAX =2<<31;unsignedlongbfs(int n){
std::queue<unsignedlong> q;
q.push(1);while(!q.empty()){int front = q.front();
q.pop();unsignedlong m;for(int i =0; i <2;++i){if(0== i){
m = front *10;}else{
m = front *10+1;}if(0== m%n)return m;else
q.push(m);}}}intmain(){int n;while(~scanf("%d",&n)&&n>=1&&n<=200){printf("%lu\n",bfs(n));}return0;}
Poj 1426 Find The Multiple题意 给一个数n(1 <= n <= 200),求它的非零倍数m, m 是一个仅含有1或0的十进制数,m不超过100位(十进制),求一个m值即可。解题思路 这道题我读了几遍,竟然没读懂。知道题意就很简单了,BFS,从1开始暴力搜索。代码#include <stdio.h>#includ...