当前位置: 首页 > news >正文

蓝桥云客--插入数字

6.插入数字【算法赛】 - 蓝桥云课

问题描述

在备战蓝桥杯的过程中,小蓝对数字变换的技巧产生了浓厚的兴趣。这天,他想到一个有趣的问题:

给定一个正整数 N,如果在 N 的开头、结尾,或者任意两个相邻数字之间插入一个数字 (0~9),可以得到多少种不同的新数字?需要注意的是,为了保证数字的有效性,插入后的数字不能以 0 开头。

例如,当 N=23 时,可以进行以下操作:

  • 在开头插入 1,得到 123;
  • 在结尾插入 5,得到 235;
  • 在数字 2 和 3 之间插入 7,得到 273。

这些操作会产生不同的数字,但某些插入方式可能会导致重复结果(例如,在 23 的开头插入 2 和在 2 和 3 之间插入 2 都会得到 223)。现在,请你帮助小蓝编写一个程序,在给定 N 的情况下,计算出通过上述插入操作能得到的不同数字的种类数。

输入格式

输入包含一个正整数 N (1 ≤ N ≤ 10^{18}),即给定的正整数。

输出格式

输出一个整数,表示通过插入操作能得到的不同数字的种类数。

样例输入

9

样例输出

18

样例说明

能得到的不同数字有:19,29,39,49,59,69,79,89,90,91,92,93,94,95,96,97,98,99。


思路:
通过模拟可以得知,n个数有n+1个空要填,假设我们不担心重复情况,开头那个空不能填0,所以开头的空可以特判为1~9数字共9个,那么还有n个空都是0~9数字共10个.对于每一个数字都会出现一次重复情况,所以最后9+n*10-10即可

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() 
{
	string s;
	cin >> s;
	int sum = 9 + 10*s.size() - s.size();
	cout << sum;	
    return 0;
}

http://www.dtcms.com/a/112793.html

相关文章:

  • JVM虚拟机篇(一)深入理解JVM:组成部分、运行流程及程序计数器详解
  • JVM虚拟机篇(三):JVM运行时数据区与方法区详解
  • C++——this关键字
  • 基于SpringBoot + Vue3的仓库(WMS)/进销存/ERP管理系统
  • 【双维畅聊】网页版聊天室测试报告
  • TC3xx芯片的UCB介绍
  • Photoshop 快捷键指南
  • springboot457-库存管理系统(源码+数据库+纯前后端分离+部署讲解等)
  • 谷歌开源单个 GPU 可运行的Gemma 3 模型,27B 超越 671B 参数的 DeepSeek
  • 在js中数组相关用法讲解
  • Git for Windows 历史版本下载教程
  • 单词排序(信息学奥赛一本通-1185)
  • 架构思维:查询分离 - 表数据量大查询缓慢的优化方案
  • 2025大唐杯仿真1——车联网
  • mysql 8.0.27-docker
  • 第二章 react redux的学习,多个reducer
  • 什么是DHCP服务,在生活中的应用是什么?
  • 使用QAction编辑器添加QAction到ui里
  • 【数字电路】第一章 数制和码制
  • Kotlin 集合函数:map 和 first 的使用场景
  • 自定义组件触发饿了么表单校验
  • LaTeX、KaTeX、Markdown 的用法
  • 15.2linux设备树下的platform驱动编写(程序)_csdn
  • 与 AI 共舞:解锁自我提升的无限可能
  • 如何通过优化HMI设计大幅提升产品竞争力?
  • 配置网络编辑器
  • 【Rust学习】Rust环境搭建和Rust基础语法
  • Jetpack Compose 自定义组件完全指南
  • python基础-13-处理excel电子表格
  • 叁仟数智指路机器人的智能导航精度如何?