分段函数分条件的计算组合,怎么使用C语言的程序编写的技术和方法来解决这个问题

Problem Description
Chiaki is interested in an infinite sequence a1,a2,a3,..., which is defined as follows:
an={1an−an−1+an−1−an−2n=1,2n≥3

Chiaki would like to know the sum of the first n terms of the sequence, i.e. ∑i=1nai. As this number may be very large, Chiaki is only interested in its remainder modulo (109+7).

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≤1018).

Output
For each test case, output an integer denoting the answer.

Sample Input
10
1
2
3
4
5
6
7
8
9
10

Sample Output
1
2
4
6
9
13
17
21
26
32