递推dp数位
2024-09-02 06:51:38
1-n里有多少个1
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int n=10;
cin >> n;
int f[10];
int x[10];
f[0] = 0;
f[1] = 1;
x[0] = 0;
x[1] = 1;
for (int i = 2; i < 10; i++) {
x[i] = x[i - 1] * 10;
f[i] = f[i - 1] * 10 + x[i];
}
int y = n;
int s = 0;
int k = 0;
int len = 0;
int rd[10];
while (y != 0) {
rd[len++] = y % 10;
y /= 10;
}
for (int i = len - 1; i >= 0; i--) {
if (rd[i] == 0) {
continue;
}
if (rd[i] == 1) {
s += n%x[i+1] + 1;
}
else {
s += x[i+1];
}
s += (rd[i]) * f[i];
}
cout << s << endl;
}
1-n里有多少包含1的数
#include <cstdio>
#include <iostream>
using namespace std;
int main() {
int n=10;
cin >> n;
int f[10];
int x[10];
f[0] = 0;
f[1] = 1;
x[0] = 0;
x[1] = 1;
for (int i = 2; i < 10; i++) {
x[i] = x[i - 1] * 10;
f[i] = f[i - 1] * 9 + x[i];
}
int y = n;
int s = 0;
int k = 0;
int len = 0;
int rd[10];
while (y != 0) {
rd[len++] = y % 10;
y /= 10;
}
for (int i = len - 1; i >= 0; i--) {
if (rd[i] == 0) {
continue;
}
if (rd[i] == 1) {
s += n%x[i+1] + 1;
s += f[i];
break;
}
else {
s += x[i+1];
s += (rd[i]-1) * f[i];
}
}
cout << s << endl;
}
最新文章
- APP漏洞扫描用地址空间随机化
- Android app被系统kill的场景
- URL Quoting
- Android开发环境搭建及常见问题解决方法
- Linux内核学习方法
- (组合数学3.1.2.2)POJ 2084 Game of Connections(卡特兰数公示的实现)
- javascript源码阅读推荐
- CSS浮动元素的水平居中
- WebApp之PC客户端
- java 读取URL中的资源
- Linux JDK 的安装卸载
- 201521123102 《Java程序设计》第5周学习总结
- 机器学习基石:06 Theory of Generalization
- 实现Kubernetes跨集群服务应用的高可用
- 第七节:利用CancellationTokenSource实现任务取消和利用CancellationToken类检测取消异常。
- Prometheus监控学习笔记之Prometheus的Relabel,SD以及Federation功能
- Kali学习笔记36:AVWS10的使用
- linux网络连接--桥接bridge,NAT,host-only的区别
- 尚硅谷springboot学习6-eclipse创建springboot项目的三种方法(转)
- python3 + zabbix api 的使用
热门文章
- 用python包xlwt将数据写入Excel中
- 可能是Asp.net Core On host、 docker、kubernetes(K8s) 配置读取的最佳实践
- demo2动态加载显示商品详情页
- Springboot常用的注解
- java BigInteger与BigDecimal
- Python中对象实例的__dict__属性
- C#LeetCode刷题-位运算
- Mybatis 和 Solon 勾搭在一起,也是个漂亮组合
- 关于word2vec我有话要说
- [PyTorch 学习笔记] 1.1 PyTorch 简介与安装