首页 > 其他 > 详细

hdu 3003 Pupu

时间:2014-08-05 00:13:28      阅读:481      评论:0      收藏:0      [点我收藏+]

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3003

题目大意:一种动物身上有n种不同的皮肤,每种皮肤有透明很不透明两种状态,经过一天的日晒,透明的可以变成不透明,不透明的可以变成透明.

刚出生的动物的皮肤是不透明的,还有只有在皮肤外层是透明的时候才可以照射进去。计算出多少天后动物的皮肤全都变过透明的。

也就是等同于最后一个变过透明是即可。

推导公式:

0表示不透明的,1表示透明的。

前一个从0变1的时候后一个可以从1变到0,也就是说前一个变2次,后一个可以变一次,前一个变四次,后后一个可以变一次。。。。。以此类推。

 1 #include <iostream>
 2 #include <cstdio>
 3 using namespace std;
 4 
 5 __int64 fun(__int64 a,__int64 b,__int64 c)
 6 {
 7     int s=1;
 8     while (b)
 9     {
10         if (b%2==1)
11             s=s*a%c;
12         a=a*a%c;
13         b/=2;
14     }
15     return s;
16 }
17 
18 int main ()
19 {
20     __int64 n,q;
21     while (scanf("%I64d",&n),n)
22     {
23         q=fun(2,n-1,n)+1;
24         printf ("%I64d\n",q);
25     }
26     return 0;
27 }

 

 

hdu 3003 Pupu,布布扣,bubuko.com

hdu 3003 Pupu

原文:http://www.cnblogs.com/qq-star/p/3890943.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!