Poj.3100 Root of the Problem【水】 2015/09/22
2015-09-22 17:37
211 查看
Root of the Problem
Description
Given positive integers B and N, find an integer A such that AN is as close as possible to B. (The result A is an approximation to the Nth root of B.) Note that AN may be less than, equal to, or greater than B.
Input
The input consists of one or more pairs of values for B and N. Each pair appears on a single line, delimited by a single space. A line specifying the value zero for both B and N marks the end of the input. The value of B will be in the range 1 to 1,000,000
(inclusive), and the value of N will be in the range 1 to 9 (inclusive).
Output
For each pair B and N in the input, output A as defined above on a line by itself.
Sample Input
Sample Output
Source
Mid-Central USA 2006
同ZOJ2818
用G++提交,C++编译错误
,
Time Limit: 1000MS | Memory Limit: 65536K | |
Total Submissions: 11964 | Accepted: 6410 |
Given positive integers B and N, find an integer A such that AN is as close as possible to B. (The result A is an approximation to the Nth root of B.) Note that AN may be less than, equal to, or greater than B.
Input
The input consists of one or more pairs of values for B and N. Each pair appears on a single line, delimited by a single space. A line specifying the value zero for both B and N marks the end of the input. The value of B will be in the range 1 to 1,000,000
(inclusive), and the value of N will be in the range 1 to 9 (inclusive).
Output
For each pair B and N in the input, output A as defined above on a line by itself.
Sample Input
4 3 5 3 27 3 750 5 1000 5 2000 5 3000 5 1000000 5 0 0
Sample Output
1 2 3 4 4 4 5 16
Source
Mid-Central USA 2006
同ZOJ2818
用G++提交,C++编译错误
,
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; int main(){ int n,b,a; while( ~scanf("%d %d",&b,&n) ){ if( !b && !n ) break; if( n == 1 ) printf("%d\n",b); else if( n == 2 ){ a = (int)sqrt(b); if( b-a*a > (a+1)*(a+1)-b ) printf("%d\n",a+1); else printf("%d\n",a); } else{ int ret = 1000000,ans,res; for( a = 1 ; a <= 100 ; ++a ){ ans = pow(a,n); if( ret > fabs(b-ans) ){ ret = b-ans; res = a; } if( ans > b ) break; } printf("%d\n",res); } } return 0; }
相关文章推荐
- JAVA 处理Word模板文件,替换其中的占位符
- git push提交代码出现“One or more refs/for/ names blocks change upload”问题的解决办法
- 在html中打开app
- maven构建eclipse工程的编码问题
- Nginx配置
- 通知中心
- Node.js中的DNS模块
- LAMP环境搭建
- 无锁编程(三) - 忙等待
- hdfs 上面block有异常处理流程
- leetcode Binary Tree Zigzag Level Order Traversal
- 无锁编程(三) - 忙等待
- BIEE Demo(RPD创建 + 分析 +仪表盘 )
- 实现页面侧滑的两种方式GestureDetector和ViewPager
- JS function 传递时间参数无法读取的问题
- HDU 5454 Excited Database 线段树的维护
- 让Hadoop跑在云端系列文章
- Cocos2d-x 3.2打包错误总结
- C#中循环获取枚举中的名称和值
- CLR 项目中 使用TimeSpan 计算时间差