POJ2109 - Power of Cryptography - 推公式
阿新 • • 發佈:2020-09-16
題意
給出一個n和p,讓我們根據\(k^{n}=p\)求出k的值,輸出k即可。
思路
因為p的範圍較大,所以用double存即可。
太菜了,想的很複雜,結果關鍵程式碼就一句。
注意
double的範圍是\(-2^{1024}\) ~ \(2^{1024}\),也就是 -1.79E+308 ~ +1.79E+308。
補充:float的範圍是\(-2^128\) ~ \(+2^128\),也即-3.40E+38 ~ +3.40E+38。
1.79E + 308 = 1.79乘以10的308次方
AC程式碼
#include<iostream> #include<string.h> #include<algorithm> #include<stdio.h> #include<cmath> #include<list> #include<stdlib.h> #include<map> #include<stack> #include<stdio.h> #include<queue> using namespace std; typedef long long ll; #define sc(T) scanf("%d",&T) #define scc(x,y) scanf("%d %d",&x,&y) #define pr(T) printf("%d\n",T) #define f(a,b,c) for (int a=b;a<c;a++) #define ff(a,b,c) for (int a=b;a>c;a--) #define inf 0x3f3f3f3f #define mem(a,b) memset(a,b,sizeof(a)) #define eps 1e-9 #define PI acos(-1) int main() { double n,p; while(cin>>n>>p) cout<<pow(p,1.0/n)<<endl; //輸出k的值 return 0; }