URAL 1009 K-based Numbers (DP动态规划)

#include <stdio.h>

int numOfDigits, base;
//result[digits]表示N为digits时的有多少个有效数字
int result[18];

int main(){
	
	scanf("%d %d", &numOfDigits, &base);

	//最高位非0
	result[1] = base - 1;
	result[2] = (base - 1) * base;

	int digits;
	for (digits = 3; digits <= numOfDigits; digits++)
		//计算numsOfDigits的时候分为次高位为0和非0两种情况
		result[digits] = (base - 1) * result[digits - 1] + (base - 1) * result[digits - 2];

	printf("%d\n", result[numOfDigits]);

	return 0;
}

你可能感兴趣的:(dp,动态规划,Numbers,1009,ural,K-based)