5的个数(动态规划)

题目描述
求n位十进制数中,出现奇数个5的数字的个数x,和出现偶数个5的数字的个数y。
P.S. n位数是指正常的n位数。
比如两位数:不存在01,02,03这种正常人都不会写出来的两位数。

输入格式
多组数据输入。
对于每组数据,每行一个正整数n。
( 1 <= n <= 15)

输出格式
每组数据输出一行,为两个整数x和y。

样例输入
1

样例输出
1 9

提示
1位数有 0,1,2,3,4,5,6,7,8,9;
出现奇数个5的数字是:5,出现了1次。
出现偶数个5的数字分别是:0,1,2,3,4,6,7,8,9。都出现了0次。

#include<iostream>
using namespace std;
const int MAX=20;
long long ji[MAX],ou[MAX];
int main(){
    
    
	int n;
	ji[1]=1,ou[1]=8;
	for(int i=2;i<MAX;i++){
    
    
		ji[i]=ou[i-1]+9*ji[i-1];
		ou[i]=ji[i-1]+9*ou[i-1];
	}
	ou[1]++;
	while(cin>>n)
		cout<<ji[n]<<" "<<ou[n]<<endl;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/m0_51794965/article/details/111504260