动态规划,每个节点都可以由左边或者右边移动过来。
public static void main(String[] args) {
//走n步,环长为k
int n=8,k=10;
//经过i步到达j点的组合数
int [][]dp = new int[n+1][k];
//经过0步到0点的组合数为1
dp[0][0]=1;
for(int i = 1; i <= n ;i++){
//这里从小到大和从大到小枚举,最终答案不变
for(int j = 0; j < k; j++){
//从左边或者右边到j点
dp[i][j] = dp[i-1][(j+1)%k]+dp[i-1][(j-1+k)%k];
}
}
System.out.println(dp[n][0]);
}