有关oj
c语言程序中x>>=1是什么意思?
>>=:这是复合运算符
“>>”是双目移位运算符,其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。
例如:设 a=15(这是十进制,要把它转换为2进制数),a>>2表示把000001111右移为00000011(十进制3)。
原文章来自->->->
if(p&1)是什么意思?
如果变量 p 和 数值常量1 进行按位逻辑与(AND)运算后的结果是非零的,那么 …
#include <iostream>
using namespace std;
long long powerGet(int power)
{
long long inner_result = 1,base;
base = power;
while (power>0)
{
if (power &1) {
inner_result = inner_result* base % 100000007;
}
power >>= 1;
base = base * base % 100000007;
}
return inner_result;
}
int main()
{
//std::cout << "Hello World!\n";
int n;
while (cin >> n)
{
long long result = 1;
for (int i = 1; i <= n; i++)
{
result = (result + powerGet(i)) % 100000007;
//cout << result << ' ';
}
cout << result << endl;
}
}