贪心 POJ 2109 Power of Cryptography

 

题目地址:http://poj.org/problem?id=2109

 1 /*
 2     题意:k ^ n = p,求k
 3     1. double + pow:因为double装得下p,k = pow (p, 1 / n);
 4     基础知识: 类型    长度 (bit)    有效数字    绝对值范围
 5             float    32             6~7         10^(-37) ~ 10^38
 6             double    64            15~16        10^(-307) ~ 10^308
 7        long double    128              18~19         10^(-4931) ~ 10 ^ 4932
 8     2. 二分查找:和1类似
 9     3. 取对数:n*ln(k)=ln(p)    ln(k)=ln(p)/n    k=exp(ln(p)/n)
10 */
11 #include <cstdio>
12 #include <iostream>
13 #include <algorithm>
14 #include <cstring>
15 #include <cmath>
16 #include <string>
17 #include <map>
18 #include <queue>
19 #include <vector>
20 using namespace std;
21 
22 const int MAXN = 1e6 + 10;
23 const int INF = 0x3f3f3f3f;
24 
25 int main(void)        //POJ 2109 Power of Cryptography
26 {
27     //freopen ("D.in", "r", stdin);
28     double n, p, k;
29 
30     while (~scanf ("%lf%lf", &n, &p))
31     {
32         printf ("%.0f\n", pow (p, 1 / n));
33     }
34 
35     return 0;
36 }
37 
38 /*
39 #include <cstdio>
40 #include <cmath>
41 #include <algorithm>
42 #include <iostream>
43 using namespace std;
44 
45 void BinarySearch(int l, int r, double n, double p)
46 {
47     int mid;
48 
49     while (l <= r)
50     {
51         mid = l + (r - l) / 2;
52         double tmp = pow (mid, n);
53         if (tmp == p)
54         {
55             printf ("%d\n", mid);    return ;
56         }
57         else if (tmp < p)    l = mid + 1;
58         else    r = mid - 1;
59     } 
60 }
61 
62 int main(void)
63 {
64     //freopen ("D.in", "r", stdin);
65 
66     double n, p;
67 
68     while (~scanf ("%lf%lf", &n, &p))
69     {
70         BinarySearch (1, 1e9, n, p);
71     }
72 
73     return 0;
74 }
75 */
76 
77 /*
78 #include <cstdio>
79 #include <cmath>
80 #include <algorithm>
81 #include <iostream>
82 using namespace std;
83 
84 int main(void)        //POJ 2109 Power of Cryptography
85 {
86     //freopen ("D.in", "r", stdin);
87 
88     double n, p;
89 
90     while (~scanf ("%lf%lf", &n, &p))
91     {
92         printf ("%.0f\n", exp (log (p) / n));
93     }
94 
95     return 0;
96 }
97 */

 

转载于:https://www.cnblogs.com/Running-Time/p/4372429.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值