MY(一名蒟蒻)
2020-03-08 11:55:37
组合数知识就不多讲了,因为作者是初一萌新,对组合数也很懵懂。
这题是快速幂求2的n-1次方,因为i取0到n所有偶数(组合数知识),试问谁不知道用快速幂(好吧在经历血的教训前(看下面)窝也不知道)。
血的教训
以求
但有人要问了,指数是奇数的时候怎么办办呢?
例如
本蒟蒻用了递归实现快速幂,如果您看了作者详(xuan)细(xue)的讲解后还是不懂,可以看这里,代码中有详细注释。
#include <cstdio>
long long ans=2,n;
const int M=6662333;
typedef long long ll;//懒人用
ll FP(ll m)//FP:fast power(快速幂)
{
if(m == 0) return 1;//任何数的0次方都是1
if(m%2 == 1) return 2*FP(m-1)%M;//指数是奇数的情况
//指数是偶数的情况
ll num=FP(m/2)%M;//使代码更简洁
return (num%M)*(num%M)%M;
}
int main()
{
//读入输出不再多说
scanf("%lld",&n);
printf("%lld",FP(n-1)%M);
return 0;
}