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

2024-05-01 10:28

本文主要是介绍洛谷 P1179 [NOIP2010 普及组] 数字统计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文由Jzwalliser原创,发布在CSDN平台上,遵循CC 4.0 BY-SA协议。
因此,若需转载/引用本文,请注明作者并附原文链接,且禁止删除/修改本段文字。
违者必究,谢谢配合。
个人主页:blog.csdn.net/jzwalliser

题目

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

[NOIP2010 普及组] 数字统计

题目描述

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

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

输入格式

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

输出格式

数字 2 2 2 出现的次数。

样例 #1

样例输入 #1
2 22
样例输出 #1
6

样例 #2

样例输入 #2
2 100
样例输出 #2
20

提示

1 ≤ L ≤ R ≤ 100000 1 ≤ L ≤R≤ 100000 1LR100000

想法

题目意思已经很明确了。这里,我们可以将每一个数字一位一位拆开来,然后看数字中到底有几个 2 2 2。最后,再将统计到的 2 2 2全部加起来即可。注意范围中包括 L L L R R R
再看数据规模,也就 1 ≤ L ≤ R ≤ 100000 1 ≤ L ≤R≤ 100000 1LR100000,其实不算大,暴力一下很容易就通过了。

实现

  1. 写一个函数,用于统计一个数字中 2 2 2出现的个数。
  2. L L L枚举到 R R R,然后统计数字 2 2 2
  3. 最后输出。

题解

C++

#include<bits/stdc++.h>
using namespace std;int deal(int num){ //函数,用于统计一个数字中2出现的次数int two = 0;while(num != 0){if(num % 10 == 2){two += 1;}num /= 10;}return two;
}int main(){int l,r;int two = 0; //统计到的2点个数cin >> l >> r; //输入for(int i = l;i <= r;i++){two += deal(i); //处理每一个数字}cout << two;
}

Python

def deal(num): #函数,用于统计一个数字中2出现的次数two = 0while num != 0:if num % 10 == 2:two += 1num = int(num / 10)return twotwo = 0 #统计到的2点个数
get = input().split() #输入
l = int(get[0])
r = int(get[1])for i in range(l,r+1):two += deal(i) #处理每一个数字print(two)

难度

难度:★☆☆☆☆
这道题并不是很难,只要稍动脑筋就可以想出来。主要考察暴力枚举算法,以及如何拆分数字:先模 10 10 10,再除以 10 10 10

结尾

还有别的思路吗?欢迎评论区留言哦!记得关注我啊(˃ ⌑ ˂ഃ ),我们下期再见!

这篇关于洛谷 P1179 [NOIP2010 普及组] 数字统计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951442

相关文章

Java数字转换工具类NumberUtil的使用

《Java数字转换工具类NumberUtil的使用》NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下Number... 目录一、NumberUtil类概述二、主要功能介绍1. 数值运算2. 格式化3. 数值判断4. 随机

opencv实现像素统计的示例代码

《opencv实现像素统计的示例代码》本文介绍了OpenCV中统计图像像素信息的常用方法和函数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 统计像素值的基本信息2. 统计像素值的直方图3. 统计像素值的总和4. 统计非零像素的数量

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

hdu1496(用hash思想统计数目)

作为一个刚学hash的孩子,感觉这道题目很不错,灵活的运用的数组的下标。 解题步骤:如果用常规方法解,那么时间复杂度为O(n^4),肯定会超时,然后参考了网上的解题方法,将等式分成两个部分,a*x1^2+b*x2^2和c*x3^2+d*x4^2, 各自作为数组的下标,如果两部分相加为0,则满足等式; 代码如下: #include<iostream>#include<algorithm

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

hdu4267区间统计

题意:给一些数,有两种操作,一种是在[a,b] 区间内,对(i - a)% k == 0 的加value,另一种操作是询问某个位置的值。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import

hdu4417区间统计

给你一个数列{An},然后有m次查询,每次查询一段区间 [l,r] <= h 的值的个数。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamRead

hdu3333区间统计

题目大意:求一个区间内不重复数字的和,例如1 1 1 3,区间[1,4]的和为4。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;