年代太久,都有点忘记了!
#include "stdio.h"

int judge(__int64 a,int n,__int64 b)
  {
int i;
__int64 sum=1;
for(i=0;i<n;i++)
 {
sum*=a;
if(sum>=b)break;
}
if(i>=n)return -1;
else return 1;
}

__int64 power(__int64 a,int n)
  {
__int64 sum=1;
__int64 temp=a;
while(n!=0)
 {
if(n&1)sum*=temp;
temp*=temp;
n>>=1;
}
return sum;
}

__int64 min(__int64 a,__int64 b,int n,__int64 p)
  {
return (p-power(a,n)<power(b,n)-p)?a:b;
}

int main()
  {
int n;
__int64 b;
__int64 left,right,middle;
while(1)
 {
scanf("%I64d%d",&b,&n);
if(b==0&&n==0)break;
left=0;right=b;
while(left<=right)
 {
middle=(left+right)/2;
if(judge(middle,n,b)>0)right=middle-1;
else left=middle+1;
}
printf("%I64d\n",min(right,left,n,b));
}
return 0;
}

代码如下:
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 |
|
公告
决定从线程开始!!
常用链接
留言簿(6)
随笔档案
搜索
最新评论

阅读排行榜
评论排行榜
|
|