×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#12805: C直覺解法
wei115
(unknown)
學校 : 僑光技術學院
編號 : 66295
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [59.126.109.77]
最後登入時間 :
2019-08-07 20:37:49
a671.
00113 - Power of Cryptography
--
UVa
113
| From: [120.109.129.16] | 發表日期 : 2017-10-12 14:52
#include<stdio.h>
#include<math.h>
#define MY_E 2.718281828459
int main()
{
double n, p;
while(scanf("%lf%lf",&n ,&p) != EOF)
printf("%d\n", (int)(pow(MY_E, log(p)/n) + 0.5));
return 0;
}
1.先用換底公式把式子轉為e為底的對數(log(e)k = log(e)p/n)
2.log()函式是取e為底的對數
3.M_E在標準裡面是沒有定義的,但GCC支持這樣的用法,但在解題系統裡會錯誤,所以自己定義了一個MY_E
4.定義 N= log(e)p/n 則 e^N = k
5.最後小數點四捨五入,因為轉型為int時會無條件捨去,所以先+0.5再轉型,已達到四捨五入的目的
6.我數學真的很爛
ZeroJudge Forum