POJ Find The Multiple 简单BFS

一开始我看见那个simple out的时候很无语比我的数差好多感觉好大,以为是应该用2进制表示后来发现时special judge~~

开始的时候数组要开的大一点。。。我re了两次没找到错然后加了3个零然后A掉

View Code
#include <stdio.h>
__int64 q[10000005],res;
int f,r;
int main()
{
    __int64 n,i;
    while(scanf("%I64d",&n)&&n)
    {
        f = r = 0;
        q[r++] = 1;
        while(f != r)
        {
            res = q[f++];
            if((res%n) == 0)
            {
                printf("%I64d\n",res);
                break;
            }

            q[r++] = res*10;
            q[r++] = res*10+1;
        }

    }
    return 0;
}
原文地址:https://www.cnblogs.com/0803yijia/p/2616543.html