博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数值的整数次方
阅读量:7266 次
发布时间:2019-06-29

本文共 1853 字,大约阅读时间需要 6 分钟。

题目描述:给定一个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
#include
#include
using namespace std; int flag = 1; //判断double类型数据是否相等 int equal(double n,double m){ if((n - m) > -0.0000001 && (n - m) < 0.0000001){ return 1; } else{ return 0; } } double PowerOfPositive(double base,int exponent){ if(exponent == 0){ return 1; } else if(exponent == 1){ return base; } else{ //右移一位相等于除以2 double result = PowerOfPositive(base,exponent >> 1); result *= result; //判断奇偶性 if(exponent & 0x1 == 1){ result *= base; } return result; } } double Power(double n,int exponent){ int i; double result = 1.0; //0^负数次方 if(equal(n,0.0) && exponent < 0){ flag = 0; return 0.0; } else{ flag = 1; int absExponent = exponent; if(exponent < 0){ absExponent = - exponent; } result = PowerOfPositive(n,absExponent); if(exponent < 0){ result = 1.0 / result; } return result; } } int main() { int i,n,num,exponent; double base; while(scanf("%d",&n) != EOF){ for(i = 0;i < n;i++){ scanf("%lf %d",&base,&exponent); double result = Power(base,exponent); if(flag == 0){ printf("INF\n"); } else{ printf("%.2ef\n",result); } } } return 0; }

 

转载地址:http://ghrdm.baihongyu.com/

你可能感兴趣的文章
Grpc+Grpc Gateway实践三 Swagger了解一下
查看>>
快速学习nodejs系列:九、nodejs没有web容器
查看>>
vscode常用插件【全了】
查看>>
EventBus实现两个Fragment直接的跳转
查看>>
与vim的一段往事
查看>>
Nginx笔记(一)Nginx安装
查看>>
ES6语法之可迭代协议和迭代器协议
查看>>
yeoman webapp gulpfile.js配置解析
查看>>
Javascript运行机制
查看>>
gulp-sass + browser-sync 一直刷新的问题
查看>>
Merge k Sorted Lists
查看>>
Uber分布式追踪系统Jaeger使用介绍和案例【PHP Hprose Go】
查看>>
Java的一些题目
查看>>
要准确裁剪背景图片先要准确渲染,background-origin与background-clip
查看>>
开发Spring MVC应用过程总结
查看>>
关于设计那点事儿 - 收藏集 - 掘金
查看>>
node.js - 收藏集 - 掘金
查看>>
移动平台Unity3D 应用性能优化
查看>>
不使用任何额外变量判断回文数字
查看>>
从http验证流程解析CAS单点登录
查看>>