我这个菜鸟真的弱爆了~~弱爆了~~以前竟然在写着超级垃圾的快速幂,彻底服了自己~~无语~~实在无语
program1(弱智快速幂取模)
图1:猴子爬下去:
图2:猴子很老实滴爬回来
#include<iostream>
using namespace std;
//求2^N%2012
int fn(int n)
{
if(n==1)return 2;
else
{
if(n%2==0)return (fn(n/2) * fn(n/2)) %2012; //一直分割,分割个蛋啊~~蛋疼~~
//直接到底再上来~~就只是一次爬上爬下而已~
return (2 * fn(n/2) * fn(n/2) ) %2012;
}
}
int main()
{
int n;
while(cin>>n)
{
cout<<fn(n)<<endl;
}
return 0;}
program:(菜鸟真正入门版:直接对应上图)
#include<iostream>
using namespace std;
//求2^N%2012
int fn(int n)
{
if(n==1)return 2;
int tmp=fn(n/2); //猴子爬到底//其实用int tmppp=tmp*tmp可优化
if(n%2==0)return tmp*tmp%2012; //回来的时候大步向前就可以了,偶尔再捡多个东西,卧槽~~
return (2 * tmp * tmp) %2012;
}
int main()
{
int n;
while(cin>>n)
{
cout<<fn(n)<<endl;
}
return 0;}