题目描述:
求出所有C n中取i 的和是多少,i取从0到n的所有偶数。
由于答案可能很大,请输出答案对 6662333 的余数
输入格式:
输入仅包含一个整数 n。
输出格式:
输出一个整数,即为答案。
输入输出样例:
输入
3
输出
4
说明/提示:
对于 20%的数据······
对于 50% 的数据······
对于 100% 的数据,n≤10^18
分析:
这么大的数据一定要开 long long!!!
分析过程看不见,自己推吧,用排列组合 。
推出来的结果,即:C n中取i = 2^(n-1)。
我们直接用快速幂来求2^(n-1)。(记得mod6662333 )
代码:
#include<bits/stdc++.h>
using namespace std;
const int p=6662333;
int aa(long long a,long long b,long long p)//快速幂
{
long long res=1;
while(b)
{
if(b&1)
{
res=res*a%p;
}
a=a*a%p;
b>>=1;
}
return res;
}
long long n;
int main()
{
cin>>n;
cout<<aa(2,n-1,p);//直接输出2^(n-1)%p的结果
return 0;//结束
}