递推算法--位数问题
来源:互联网 发布:打印机网络共享 编辑:程序博客网 时间:2024/05/29 14:06
[问题描述]
在所有的n位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。
[输入格式]
读入一个数n。
[输出格式]
输出有多少个数中有偶数个数字3。
[输入样例] [输出样例]
2 73
[数据范围]
1<=n<=1000
[算法分析]
考虑这种题目,一般来说都是从第i-1位推导第i位,且当前位是取偶数还是取奇数的。
可以用f[i][0]表示前i位取偶数个3有几种情况,f[i][1]表示前i位取奇数个3有几种情况。
则状态转移方程可以表示为
f[i][0]=f[i-1][0]*9+f[i-1][1]
f[i][1]=(f[i-1][1]*9+f[i-1][0]
边界条件: f[1][1]=1; f[1][0]=9[参考程序]
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int f[1001][2],n,i,x;
cin>>n;
f[1][1]=1;f[1][0]=9;
for(i=2;i<=n;i++)
{x=f[1][0];
if(i==n)x--;
f[i][0]=(f[i-1][0]*x+f[i-1][1])%12345;
f[i][1]=(f[i-1][1]*x+f[i-1][0])%12345;
}
cout<<f[n][0];
return 0;
}
阅读全文
0 0
- 递推算法--位数问题
- 递推算法应用--数塔问题
- 约瑟夫问题递推算法
- 每日一算法,递推:汉诺塔问题
- 递推算法---划分平面问题
- “大整数阶乖”问题的递推算法
- “斐波那契数列”问题的递推算法
- “大整数阶乖”问题的递推算法
- “大整数阶乖”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “大整数阶乖”问题的递推算法
- “斐波那契数列”问题的递推算法
- “斐波那契数列”问题的递推算法
- “大整数阶乖”问题的递推算法
- “斐波那契数列”问题的递推算法
- “大整数阶乖”问题的递推算法
- “大整数阶乖”问题的递推算法
- 11_[补充]JDK7新特性_二进制整数_下划线分隔符
- 依赖注入
- 畅通工程
- Java day10
- Selenium操作Chrome不兼容问题
- 递推算法--位数问题
- 发布自己的开源框架到CocoaPods
- Unit3.1 ipv6网络的管理
- android全屏
- 知识点6:常见的排序算法---冒泡排序
- C++/MFC-自定义启动窗口
- String StringBuffer 字符数组 的相互转化
- iperf命令使用
- 数据库简介