zoukankan      html  css  js  c++  java
  • hdu 3003 Pupu

    题目链接: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
    ",q);
    25     }
    26     return 0;
    27 }

     

  • 相关阅读:
    Springmvc
    Mybatis关联关系
    Mybatis整合ehcache 和 redis
    Mybatis与spring集成
    MyBatis动态sql和分页
    MyBatis入门
    Vue模板语法(二)
    Vue模板语法(一)
    Spring---SSH整合(二)
    Spring---SSH整合
  • 原文地址:https://www.cnblogs.com/qq-star/p/3890943.html
Copyright © 2011-2022 走看看