简单题2

链接:https://ac.nowcoder.com/acm/contest/11356/B
来源:牛客网

Etéreo 最近又发现了一个高大上的东西:\ln \Upsilon = 1lnΥ=1
他觉得这里的 \UpsilonΥ 同样非常的厉害!然后他又告诉你:
\delta^{\Upsilon} = \underbrace{\Xi + \Xi + \Xi + \cdots + \Xi}_{\zeta \text{个} \Xi}δ
Υ

ζ个Ξ
Ξ+Ξ+Ξ+⋯+Ξ

他会告诉你 \deltaδ 和 \zetaζ ,想请你告诉他 \XiΞ 的值。当然这是一个小数,所以请你在小数点后保留 \sigmaσ 位。
Etéreo 是个“问题小子”,有很多询问,请你一一回答。
注意,题中 \Upsilon, \Phi, \XiΥ,Φ,Ξ 都是实数。
输入描述:
第一行一个整数 TT ,表示 Etéreo 的询问个数。
接下去 TT 行,每行三个整数 \delta, \zeta, \sigmaδ,ζ,σ ,表示一个询问,意义同题目描述。
输出描述:
输出共 TT 行,每行一个小数,表示答案 \XiΞ。
示例1
输入
复制
2
147 3 2
80 6 4
输出
复制
259572.14
24830.3979
备注:
1 \leq \delta \leq 2001≤δ≤200
1 \leq \zeta \leq 1001≤ζ≤100
1 \leq \sigma \leq 51≤σ≤5
1 \leq T \leq 5001≤T≤500
题中小数请尽量取精确值。

整数的小数次幂可以用pow来实现

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;

const double e = 2.718281828459045;

int main(){
    
    
	int T;
	scanf("%d", &T);
	while(T --){
    
    
			int a, b, c;
	
	scanf("%d%d%d", &a, &b, &c);
	
	a = (double)a;
	double res = (double)pow(a, e)/ (double)b;
	
	if (c == 1)   printf("%.1f\n", res);
	else if (c == 2)   printf("%.2f\n", res);
	else if (c == 3)   printf("%.3f\n", res);
	else if (c == 4)   printf("%.4f\n", res);
	else if (c == 5)   printf("%.5f\n", res);
	
	}

	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_45772483/article/details/112596465