编程题
### 问题描述 小然在他的夏日假期里,喜欢用字符串进行游戏。他特别喜欢交替出现的模式,但他只喜欢字符 'a' 和 'b',所以他开始了如下的游戏: 小然首先创建一个空字符串 $S$,然后: 1. 首先,他在 $S$ 的末尾添加一个 'a'。 2. 然后,他在 $S$ 的末尾添加两个 'b'。 3. 接下来,他在 $S$ 的末尾添加三个 'a'。 4. 然后,他在 $S$ 的末尾添加四个 'b'。 5. 以此类推。例如,$S$ 的前 13 个字符是 "abbaaabbbbaaa"。 现在,小然取出 $S$ 的前 $N$ 个字符,然后计算它的美丽度。字符串的美丽度定义如下: 1. 首先,我们定义一个字符串 $A$ 的值是满足 $A_i \neq A_{i+1}$ 的位置 $i$($1 \leq i < |A|$)的数量。例如,字符串 "aaa" 的值是 0,字符串 "abba" 的值是 2。 2. 然后,字符串的美丽度定义为所有子字符串的值的和。两个子字符串如果在不同的位置则被认为是不同的,因此长度为 $K$ 的字符串有恰好 $\dfrac{K \cdot (K + 1) }{2}$ 个子字符串。 你的任务是,给定 $N$,计算由 $S$ 的前 $N$ 个字符组成的字符串的美丽度。由于答案可能非常大,所以请你将答案对 $10^9 + 7$ 取模后输出。 ### 输入格式 输入的第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例包含一行,包含一个整数 $N$。 ### 输出格式 对于每个测试用例,输出一行,包含一个整数,表示字符串的美丽度对 $10^9 + 7$ 取模后的结果。 ### 样例输入 ``` 3 3 4 7 ``` ### 样例输出 ``` 2 6 24 ``` ### 说明 在第一个测试用例中,$S$ 的前两个字符是 "ab"。其子字符串的值如下: - "a"、"b" 的值为 $0$。 - "ab" 的值为 $1$。 所以,字符串的美丽度为 $2$。 在第二个测试用例中,$S$ 的前四个字符是 "abba"。其子字符串的值如下: - "a"、"b"、"bb" 的值为 $0$。 - "ab"、"abb"、"ba"、"bba" 的值为 $1$。 - "abba" 的值为 $2$。 所以,字符串的美丽度为 $6$。 ### 评测数据范围 $1 \leq T \leq 10^5$。 $1 \leq N \leq 10^9$。
查看答案
赣ICP备20007335号-2