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

洛谷 P1179 [NOIP2010 普及组] 数字统计 题解

题目描述

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

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

输入格式

2 个正整数 L 和 R,之间用一个空格隔开。

输出格式

数字 2 出现的次数。

输入输出样例

输入 #1

2 22

输出 #1

6

输入 #2

2 100

输出 #2

20

说明/提示

1≤L≤R≤100000。

NOIP2010 普及组 第一题

思路:

        思路1:

                从L遍历到R,每个i都算一下有多少个2

                优点:不用写额外的函数
                缺点:每次算有多少个2时,原来的循环变量不能改变

        思路2:

                写一个函数用于计算每个数有多少个2(函数里变量的值不改变),循环里面套函数

                优点:不用管循环变量是否改变

                缺点:代码量较长

当然,这两种我都给大家写一遍!

AC代码(思路1):

//思路1
#include<bits/stdc++.h>//万能头文件
using namespace std;//cin,cout必备
int main()//main主函数
{int l,r;//定义变量cin >> l >> r;//输入int cnt=0;//定义计数器,表示2的数量for(int i=l;i<=r;i++)//l到r{int j=i;//循环变量不能改变while(j)//一直÷10,直到结果为0{cnt+=j%10==2;//如果余数是2,cnt++j/=10;//别忘了这个}}cout<<cnt;//输出计数器的值return 0;//程序结束
} 

 AC代码(思路2):

//思路2
#include<bits/stdc++.h>//万能头文件
using namespace std;//cin,cout必备
int NumberofTwos(int n)//定义函数求2的个数
{int cnt=0;//初始化计数器do//这是一个do while循环,和while(xxx)是一样的{cnt+=n%10==2;//余数是2,cnt++n/=10;}while(n);//别忘了这个return cnt;//返回计数器的值
}
int main()//main主函数
{int l,r;//定义变量cin >> l >> r;//输入int cnt=0;for(int i=l;i<=r;i++){cnt+=NumberofTwos(i);}cout<<cnt;return 0;//程序结束
} 

最后还是奉上提交记录:

思路1:思路1(无函数)
思路2:思路2(有函数)

这篇博客就到这里啦,我们几分钟后再见! 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Docker 相关命令
  • HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
  • 【探索Linux】P.42(传输层 —— TCP面向字节流 | TCP粘包问题 | TCP异常情况 )
  • OpenWrt 为软件包和docker空间扩容
  • 【过滤器 vs 拦截器】SpringBoot中过滤器与拦截器:明智选择的艺术(如何在项目中做出明智选择)
  • html+css 实现水波纹按钮
  • TCP/IP协议(全的一b)应用层,数据链层,传输层,网络层,以及面试题
  • 披荆斩棘:Python开发者在市场低迷期快速找到工作的策略
  • C# 植物大战僵尸
  • 关于海康网络摄像头使用VLC或者Opencv拉流有延迟的问题
  • Linux网络:传输层TCP协议(四)拥塞控制及延迟应答
  • 前端和Postman调用同一个接口,拿到的数据不一样
  • Visual Studio 2022美化
  • GitHub每日最火火火项目(7.26)
  • 反序列化-极客大挑战2019php【I have a cat!】
  • __proto__ 和 prototype的关系
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • git 常用命令
  • Git的一些常用操作
  • Javascript编码规范
  • Java超时控制的实现
  • Java教程_软件开发基础
  • LeetCode29.两数相除 JavaScript
  • MySQL QA
  • Objective-C 中关联引用的概念
  • Redis的resp协议
  • Vue2.0 实现互斥
  • 多线程 start 和 run 方法到底有什么区别?
  • 给github项目添加CI badge
  • 解析带emoji和链接的聊天系统消息
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前端代码风格自动化系列(二)之Commitlint
  • 如何实现 font-size 的响应式
  • 使用parted解决大于2T的磁盘分区
  • 运行时添加log4j2的appender
  • 栈实现走出迷宫(C++)
  • k8s使用glusterfs实现动态持久化存储
  • #QT(一种朴素的计算器实现方法)
  • $Django python中使用redis, django中使用(封装了),redis开启事务(管道)
  • (BFS)hdoj2377-Bus Pass
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (分布式缓存)Redis持久化
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (一)Dubbo快速入门、介绍、使用
  • (一)SvelteKit教程:hello world
  • (转) Android中ViewStub组件使用
  • (转)iOS字体
  • .form文件_SSM框架文件上传篇
  • .JPG图片,各种压缩率下的文件尺寸
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例