nyoj 88 汉诺塔 (快速模幂法)

来源:互联网 发布:在淘宝买薄荷种子 编辑:程序博客网 时间:2024/09/21 06:34


                题目地址http://acm.nyist.net/JudgeOnline/problem.php?pid=88

                 这题是简单的汉诺塔入门   分析之后可以得出f(k)=2^k-1  因为这道题要求是留最后6位,所以就是相当于求2^b%1000000-1的值

                 用的是快速模幂法

#include<iostream>#include<cstdio>using namespace std;long long mod(long long a,long long b,long long c){    long long t=1;    while(b)    {        if(b%2)            t=t*a%c;        a=a*a%c;        b/=2;    }    return t;}int main(){    long long b,t;    scanf("%lld",&t);    while(t--)    {        scanf("%lld",&b);        printf("%lld\n",mod(2,b,1000000)-1);    }    return 0;}




0 0
原创粉丝点击