当前位置: 首页> 健康> 养生 > 华为手机网站建设策划方案论文_上海市政府网站官网_网上推广app_seo推广培训班

华为手机网站建设策划方案论文_上海市政府网站官网_网上推广app_seo推广培训班

时间:2025/7/14 4:10:57来源:https://blog.csdn.net/zqystca/article/details/147017246 浏览次数:0次
华为手机网站建设策划方案论文_上海市政府网站官网_网上推广app_seo推广培训班

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;
}

关键字:华为手机网站建设策划方案论文_上海市政府网站官网_网上推广app_seo推广培训班

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: