问题标题: 酷町堂:1288 序列数字个数(seqnum)

0
0
已解决
丁博扬
丁博扬
中级天翼
中级天翼

1288   序列数字个数(seqnum)

题目描述 Description

最近正在上映电影“魔境仙踪”,爱魔幻故事的卡卡西特别想去看,于是央求着妈妈带她去影院。卡卡西的妈妈对她微微一笑,说:“那好吧,卡卡西,让我来考考你,如果你能解决我出的难题,就可以带你去影院哦!你想要试试吗?”“当然啦,尽管出题吧……”,卡卡西信心满满,于是妈妈开始出题。
题目是这样的:现连续写下从整数1开始到某个整数N(十进制)之间的所有整数时,能得到如下的数字序列:12345678910111213141516171819202122…,当N为20时,得到的数字序列为:1234567891011121314151617181920。
请编写一个程序,计算这个序列中的数字字符的个数。小朋友们,你们能帮助卡卡西获得观看电影“魔境仙踪”的影券吗?

输入描述 Input Description

一行,一个正整数N(1≤N≤10000)。

输出描述 Output Description

一个正整数,表示由给定的整数所产生的序列的数字个数。

样例输入 Sample Input

15

样例输出 Sample Output

21

数据范围及提示 Data Size & Hint

当N=15时,得到的数字序列为:123456789101112131415,这个数字序列包含的数字字符个数为21个。
40%的数据1≤N≤100。
90%的数据1≤N≤1000。
100%的数据1≤N≤10000。

丁博扬在2020-10-18 12:21:23追加了内容

第一次发帖,请大家轻点喷

没有代码

谁给我思路


0
已采纳
杜智宸
杜智宸
中级光能
中级光能

四个if加一个else解决

杜智宸在2020-10-18 12:26:17追加了内容

输入

  • if(n<10){
  • cout<<n;
  • }
  • else if(n>=10 && n<100){
  • cout<<n+n-9;
  • }
  • else if(n>=100 && n<1000){
  • cout<<n+n-9+n-99;
  • }
  • else if(n>=1000 && n<10000){
  • cout<<n+n-9+n-99+n-999;
  • }
  • else {
  • cout<<n+n-9+n-99+n-999+n-9999;
  • }

完结撒花

0
我要回答