Problem Description soda has a set S with n integers {1,2,…,n}. A set is called key set if the sum of integers in the set is an even number. He wants to know how many nonempty subsets of S are key set. Input There are multiple test cases. The first line of input contains an integer T (1≤T≤105), indicating the number of test cases. For each test case:
The first line contains an integer n (1≤n≤109), the number of integers in the set. Output For each test case, output the number of key sets modulo 1000000007. Sample Input4 1 2 3 4 Sample Output 0 1 3 7 对于一个有n的元素的集合,组成的非空子集有2^n - 1个,其中和为奇数的个数比和为偶数的个数多一个。注意利用快速幂函数,不要超过了long long。所以答案应为2^(n-1)-1.
代码如下: #include #include #define ll long long #define mod 1000000007 using namespace std; ll t,n; int main() { cin>>t; while(t–) { ll sum=1,i=2; cin>>n; n=n-1; n=n%mod; while(n) { if(n&1) { sum=(sumi)%mod; } i=(ii)%mod; n=n/2; } cout<<sum-1<<endl; } return 0; }