zoj 3167 Find 7 Faster Than John Von Neumann

    技术2024-07-06  69

     

    给你K,M,求最小的n使之M^n的第K位是7.

     

    由于K小于1000,所以可能得用大数。但是我想想能不能不用大数,就在推公式。用对数神马的。数字小的可以解决,大的有错误 = =。。。无语死了。我还是用大数吧。还是用大数写着快啊。。。

     

    #include <cstdio> #include <cstdlib> #include <iostream> #include <string.h> #include <math.h> using namespace std; int num[1000]; int main() { int k,m,n,len,i; while( scanf("%d%d",&k,&m) != EOF ) { memset(num,0,sizeof(num)); num[0] = 1; len = 1; for(n=1; n<=100; n++) { for(i=0; i<len; i++) num[i] *= m; for(i=0; i<len; i++) if( num[i] >= 10 ) { num[i+1] += num[i]/10; num[i] %= 10; } while( num[i] >= 10 ) { num[i+1] += num[i]/10; num[i] %= 10; i++; } while( num[i] != 0 ) i++; len = i; if( num[k-1] == 7 ) { printf("%d/n",n); break; } } } return 0; }  

    最新回复(0)