poj 3100(水题,注意pow()参数不能为Int,int)

#include<iostream>
#include<cmath>
using namespace std;
int main(){
    int b,n,result,i,minj,minx,tmp;
    while(scanf("%d%d",&b,&n)==2&&b){
        minx = 1000005;
        for(i=1;;i++){
            tmp = pow((double)i,n);
            if(tmp<b){
                if(b-tmp<minx){
                    minx = b-tmp;
                    minj = i;
                }
            }
            else if(tmp==b){
                minx = 0;
                minj = i;
                break;
            }
            else if(tmp>b){
                if(tmp-b<minx){
                    minx = tmp-b;
                    minj = i;
                }
                break;
            }
        }
        printf("%d\n",minj);
    }
    return 0;
}

 

上一篇:非常规入门之一:通用编程语言技术之数理逻辑基础(二)


下一篇:400.第N位数字