poj 3100(水题)

#include<iostream>
#include<cmath>
#include<cstdio>
using namespace std;
int main(){
    int b,n,i,d,di,p,t;
    while(scanf("%d%d",&b,&n)==2&&b){
        di = 1;
        i = 1;
        d = abs((double)b-1);
        p = 1;
        i = 2;
        p = pow((double)i,n);
        for(;p<=b;){
            t = abs(p-b);
            if(t<d){
                di = i;
                d = t;
            }
            p = pow((double)++i,n);
        }
        if(abs(p-b)<d){
            di = i;
            d = abs(p-b);
        }
        printf("%d\n",di);
    }
    return 0;
}

 

posted @ 2021-07-31 23:50  智人心  阅读(29)  评论(0)    收藏  举报