栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

1313:【例3.5】位数问题(递推)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

1313:【例3.5】位数问题(递推)

问题描述:

【题目描述】
在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。

【输入】
读入一个数N(N≤1000)。

【输出】
输出有多少个数中有偶数个数字3。

【输入样例】
2
【输出样例】
73

分析:

解决方案:
#include 
using namespace std;
int a[1005][2];
int main() {
	int n;
	cin>>n;
	if(n<=1) {//只有一位,只有一个数:3,为奇数个3,故直接返回10-1 
		cout<<9;
	} else {//最高位不能为0 
        //只有第一位只有9个数,其为最高位,后面的都可以取0~9;
		a[1][0]=8;//9-1  只能从0-9中取除了0和3之外的8个数字 
		a[1][1]=1; a[1][1]前1位取奇数个3,只能取3一个数字
		for(int i=2; i<=n; i++) {
			a[i][0]=(a[i-1][0]*9+a[i-1][1]*1)%12345;
			a[i][1]=(a[i-1][0]*1+a[i-1][1]*9)%12345;
		}
		cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/739291.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号