비요뜨의 징검다리 건너기

시간 제한1초메모리 제한256 MB

요약
돌 1에서 시작해 한 번에 임의의 양의 정수만큼 점프해 돌 N에 정확히 도착하는 경우의 수를 10^9+7로 나눈 나머지를 구한다.
난이도

보통10점 중 4점

유형
수학, 조합론, 동적 계획법, 정수론
정답자
아직 제출이 없습니다

문제

비요뜨는 지금 강 앞에 서 있다. 강 위에는 징검다리가 놓여 있다.

징검다리는 비요뜨가 있는 방향에서부터 반대 방향까지 차례로 1번, 2번, ..., NN번의 번호를 가지고 있다.

비요뜨는 1번 징검다리 위에 올라갔다. 그리고 아래 두 가지 규칙을 지키며 징검다리를 건너려고 한다.

  • 1≤X≤N1 \le X \le N인 임의의 정수 XX에 대해, 현재 있는 징검다리의 번호를 ii번이라고 할 때 i+Xi+X번 징검다리로 뛸 수 있다.
  • NN번째 징검다리를 지나쳐선 안 되고, 정확히 도착해야 한다

비요뜨는 자신의 특기인 코딩을 살리기 위해 노트북을 켰지만, 실수로 노트북을 강에 빠뜨리고 말았다.

비요뜨를 대신해 강을 건너는 경우의 수를 구해 주자!

입력

첫 번째 줄에 테스트 케이스의 수 TT가 주어진다. (1≤T≤10001 \le T \le 1000)

각 테스트 케이스는 한 줄로 구성되며, 징검다리의 개수를 의미하는 NN이 주어진다. (1≤N≤1091 \le N \le 10^9)

출력

각 테스트 케이스에 대해, 한 줄에 하나씩 규칙을 만족하면서 징검다리를 건너는 경우의 수를 109+710^9+7로 나눈 나머지를 출력한다.

예제1

  1. 예제 1

    입력
    1
    4
    
    예상 출력
    4