九度OJ 1514 数值的整数次方【算法】
来源:互联网 发布:淘宝小型家庭清冼机 编辑:程序博客网 时间:2024/06/17 03:54
题目地址:http://ac.jobdu.com/problem.php?pid=1514
- 题目描述:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
- 输入:
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,表示测试案例的数目,接下来的T行每行输入一个浮点数base和一个整数exponent,两个数中间用一个空格隔开。
- 输出:
对应每个测试案例,
输出一个浮点数代表答案,保留两位小数即可。
- 样例输入:
51.0 100.0 -51.0 01.2 52.0 -1
- 样例输出:
1.00e+00fINF1.00e+00f2.49e+00f5.00e-01f
#include <stdio.h>#include <math.h>#include <stdlib.h> double PowerWithUnsignedExponent (double base, unsigned int exponent){ if (exponent == 0) return 1.0; if (exponent == 1) return base; double ans = PowerWithUnsignedExponent (base, exponent >> 1); ans *= ans; if (exponent & 0x01 == 1){ ans *= base; } return ans;} double Power (double base, int exponent){ double ans; unsigned int uexponent; if ((base == 0) || (base == 0 && exponent < 0)) return 0.0; uexponent = (unsigned int)abs (exponent); ans = PowerWithUnsignedExponent (base, uexponent); if (exponent < 0) ans = 1.0 / ans; return ans;} int main(void){ int T; double base; int exponent; double ans; double zero = 0.0; while (scanf ("%d", &T) != EOF){ while (T-- != 0){ scanf ("%lf%d", &base, &exponent); ans = Power (base, exponent); if (ans != 0.0) printf ("%.2ef\n", ans); else if (base == 0.0 && exponent >= 0) printf ("%.2ef\n", zero); else printf ("INF\n"); } } return 0;}
参考资料:何海涛 -- 程序员面试题精选100题(44)-数值的整数次方[算法]
1 0
- 九度OJ 1514 数值的整数次方【算法】
- 九度OJ-题目1514:数值的整数次方
- 九度1514数值的整数次方
- 【剑指Offer面试编程题】题目1514:数值的整数次方---九度OJ
- 九度oj1514:数值的整数次方
- 九度oj1514数值的整数次方
- 题目1514:数值的整数次方-九度
- 九度 题目1514:数值的整数次方
- 九度_题目1514:数值的整数次方
- 算法:数值的整数次方
- 【算法详解】求解数值的整数次方
- 数值的整数次方(算法)
- 算法题20 数值的整数次方
- 算法题目---数值的整数次方
- 【算法】求数值的整数次方
- 算法题/数值的整数次方
- 数值的整数次方
- 数值的整数次方
- ThinkPHP验证码
- Win32 Linux汇编语法区别
- projecteuler No.78 Coin partitions
- Java去除集合List内重复记录
- uva 1442 - Cav(贪心)
- 九度OJ 1514 数值的整数次方【算法】
- CAlayer学习翻译
- 图片缩小的类
- 思维导图之软件工程视频
- Java操作properties文件
- HDU1241_Oil Deposits(BFS)+(DFS)
- python 异或运算
- 水题 判断能否被4整除或者含 有4
- 设计模式大总结2-结构型模式