前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vijos P1784 数字统计【模拟】

Vijos P1784 数字统计【模拟】

作者头像
Angel_Kitty
发布2018-04-09 14:41:29
4020
发布2018-04-09 14:41:29
举报

数字统计

背景

来自 NOIP2010 普及组 第一题

描述

请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。

比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出现了1次,在数20中出现了1次,在数21中出现了1次,在数22中出现了2次,所以数字2在该范围内一共出现了6次。

格式

输入格式

输入共一行,为两个正整数L和R,之间用一个空格隔开。

输出格式

输出共1行,表示数字2出现的次数。

样例1

样例输入1

代码语言:javascript
复制
2 22

样例输出1

代码语言:javascript
复制
6

样例2

样例输入2

代码语言:javascript
复制
2 100

样例输出2

代码语言:javascript
复制
20

限制

1s

提示

【数据范围】 1≤L≤R≤10000 ====很简单哦!====

题目链接:https://vijos.org/p/1784

分析:开始用了一个while()计算,出了点差错,后来发现只需要用几个if语句判断一下就好了,复杂度为O(r-l)=O(n)

下面给出AC代码:

代码语言:javascript
复制
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int l,r,ans=0;
 6     cin>>l>>r;
 7     for(int i=l;i<=r;i++)
 8     {
 9         if((i/1)%10==2)
10             ans++;
11         if((i/10)%10==2)
12             ans++;
13         if((i/100)%10==2)
14             ans++;
15         if((i/1000)%10==2)
16             ans++;
17         if((i/10000)%10==2)
18             ans++;
19     }
20     cout<<ans<<endl;
21     return 0;
22 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数字统计
  • 背景
  • 描述
  • 格式
    • 输入格式
      • 输出格式
      • 样例1
        • 样例输入1
          • 样例输出1
          • 样例2
            • 样例输入2
              • 样例输出2
              • 限制
              • 提示
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档