年代太久,都有点忘记了!
#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; }
代码如下:
|
|
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
29 | 30 | 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 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
公告
决定从线程开始!!
常用链接
留言簿(6)
随笔档案
搜索
最新评论
阅读排行榜
评论排行榜
|
|