博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1980【洛谷】 计数问题 解题报告
阅读量:4630 次
发布时间:2019-06-09

本文共 1855 字,大约阅读时间需要 6 分钟。

  "

          无奈没在洛谷刷过题,只能从水题做起……

                                                                                                       "

【传送门:http://www.luogu.org/problem/show?pid=1980】

<!———————————下面是原题—————————————————————————————-->

P1980 计数问题

  • 题目提供者
  • 标签 模拟 2013 NOIp普及组
  • 难度 入门难度

 题目描述

试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1

到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。

输入输出格式

输入格式:

输入文件名为 count.in。

输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。

输出格式:

输出文件名为 count.out。

输出共 1 行,包含一个整数,表示 x 出现的次数。

输入输出样例

输入样例#1:
11 1
输出样例#1:
4

说明

对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。

<!———————————————解题过程—————————————————————————-->

LZ刚开始的想法

//这是LZ刚开始的代码只拿了30分【错误代码】-------------------------------------------- program WA;var   n,x,data,i:integer;   temp,ans:string;   t1:char; begin   read(n,x);//读入数据   for i:= 1 to n do     begin       str(i,temp);//将每个数转为字符串       ans:=ans+temp;//将转换得到的字符串加到ans里     end;   t1:=chr(x+48);//用字符表示数字X   for i:= 1 to length(ans) do     if ans[i]=t1 then inc(data);//一个个对比,若找到就递增data   writeln(data); end. //-----------------------------------------------------------------------------------------

  这个想法有个缺陷,就是如果n太大导致ans这个字符串太长就会超出string的范围,或许可以用ansistring,但是直接一个数一个数的分析不是更好吗,而且还能降低不必要的时间和空间上的浪费。

  于是就有了下面这个题解……

//下面是正确代码-----------------------------------------------------------------------program accepted; var   n,x,i,j,ans:longint;   temp:string; begin   readln(n,x);   for i:=1 to n do   begin     str(i,temp);//转换为字符串方便计算     for j:=1 to length(temp)do//一位一位比较       if ord(temp[j])-48 =x//求每一位的ascII码,-48变数字,         then inc(ans);//出现一次加一次   end;   writeln(ans);//输出出现次数 end.//---------------------------------------------------------------------------------------

  艰难的AC了道水题——(*/ω\*)

 -----------------------------------------------------------------------------------------------------------

 

本文作者的博客园:http://www.cnblogs.com/tonylim/

本文作者的CSDN博客:http://blog.csdn.net/happy_china1312

转载于:https://www.cnblogs.com/bobble/p/5710941.html

你可能感兴趣的文章
51Nod-1276-岛屿的数量
查看>>
WebService 小实例
查看>>
工作要总分总
查看>>
最小编辑距离
查看>>
学习Sass之安装篇
查看>>
图片上传,直接在网页中显示(支持IE,谷歌,火狐浏览器)
查看>>
Kingdom Rush 国王保卫战策略心得
查看>>
Django ManyToMany
查看>>
Asp.net笔记(1)
查看>>
20171103html5文档还没有看完!
查看>>
数据结构之二叉树排序(转载http://www.cnblogs.com/mcgrady/p/3280624.html)
查看>>
Cacti数据采集周期修改为一分钟一次的方法
查看>>
SVN服务器地址更换方法
查看>>
java操作数据库增删改查的小工具1--TxQueryRunner
查看>>
vs2010统计项目代码总行数
查看>>
delphi 一个时钟引发的事情
查看>>
JPEG和Variant的转换
查看>>
How to read very large text files fast
查看>>
Java读取.properties配置文件
查看>>
java绘制带姓的圆
查看>>