喜爱ACM的PBY同学遇到了一道数学难题,已知底数n,请你帮他准确的计算出结果a = n^π(n的π次方),结果保留小数点后x位。
输入描述:
第一行是一个整数t,表示测试实例的个数;
然后是t行输入数据,每行包含两个正整数n和x,表示底数和保留位数
(1 <= t <= 100,1 <= n <= 500,1 <= x <= 6)
输出描述:
对于每组输入数据,分别输出结果a,每个输出占一行。
示例1
输入 3
1 3
7 6
9 1
输出
1.000
451.807873
995.0
代码:
#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
using
namespace
std;
#define PI 3.1415926//定义PI
int
main()
{
int
t,x;
double
n;
double
a;
cin>>t;
while
(t--)
{
cin>>n>>x;
printf
(
"
%.*f\n"
,x,
pow
(n,
acos
(-1)));
}
return
0;
}
在scanf里,这个星号表示scanf读取并抛弃此种类型的输入,比如:
char a[64];scanf("%*f%s", a);puts(a);你输入:123.456qqq,只有qqq被读到a里,123.456被读取并丢弃了。
在printf里,如果任何一个合法的格式化符%后有*号的话,则在其对应的参数前面还需要另一个int型参数来标示其宽度,相当于printf("%3f", 1.2)中的数字3,比如:
pritf("%0*d", 4, 1); // 输出0001但是对于浮点类型来说,如果在宽度和精度的地方都有*的话(就是在.的左右两边),则需要2个int来分别指示其宽度和精度:printf("%0*.*f", 12, 7, 123.456789); // 输出0123.4567890