做完这道小题,对进制的理解加深了一点。
进制就是把一堆1用log级别表示出来的方法。log的底数就是进制。不同进制(除了1进制之外)在表示的难度方面没有质的变化。所谓10进制并没有什么优势。
2进制一样可以log级别表示数。
总共有几位就是log(n)
进制转换
看这篇文章就好了
http://www.cnblogs.com/phinecos/archive/2009/09/11/1564975.html
#include<stdio.h>
#include<cmath>
double l[1000003];
int main()
{
int cas;
scanf("%d",&cas);
l[0]=0;
for(int i=1;i<1000001;i++)
l[i]=l[i-1]+log(i);
for(int T=1;T<=cas;T++)
{
int n,base;
scanf("%d%d",&n,&base);
double logb=log(base);
printf("Case %d: %d\n",T,((int)(l[n]/logb))+1);
}
}