指数计算
一、题目要求
- 题目描述
计算表达式x^y的值,分别输出它们的整数部分和小数部分。 - 输入格式
输入有若干行,每行两个浮点数x、y。 - 输出格式
当x<0时,输出"NO",否则就输出x^y的整整部分和小数部分。小数部分按%lf格式输出。
如12.345的输出为"12 0.345000". - 输入样例
1.1 2
3.6 7.8
-3 0.5 - 输出样例
1 0.210000
21835 0.317236
NO
二、完整代码
#include <iostream>
#include <math.h>
#include <iomanip>
int main()
{
double x, y;
while (std::cin >> x>>y)
{
if (x < 0)
{
std::cout << "NO" << std::endl;
}
else
{
double xy = pow(x, y);
double d = xy - floor(xy);
std::cout << std::fixed << std::setprecision(0) << floor(xy);
std::cout << std::fixed << std::setprecision(6) <<" " << d << std::endl;
}
}
}
核心点理解
- pow()里的输入要是double类型的:
double x, y;
double xy = pow(x, y);
- 取整数的函数:
floor(xy);
- %lf格式输出 即 double 类型