/*这题貌似就是找规律。 f1 = k-1; f2 = k*k - k; f3 = (f1 + f2) * (k-1); //(k-1)表示首位不为0的个数,比如n = 3时, 首位可能是1, 2, 3, 4, 5, 6, 7, 8, 9。 My Code:*/ #include#include using namespace std; int main() { //freopen("data.in", "r", stdin); int f1, f2, f3; int n, k, i; while(~scanf("%d%d", &n, &k)){ f1 = k-1; f2 = k*k - k; if(n == 1){ printf("%d\n", f1); continue; } if(n == 2){ printf("%d\n", f2); continue; } for(i = 3; i <= n; i++){ f3 = (f1 + f2) * (k - 1); f1 = f2; f2 = f3; } printf("%d\n", f3); } return 0; }