P1179 [NOIP2010 普及组] 数字统计
[P1179 [NOIP2010 普及组] 数字统计](https://www.luogu.com.cn/problem/P1042?contestId=150154
P1179 [NOIP2010 普及组] 数字统计
题意
输入两个数,作为范围,去寻找这两个数之间2的数量。
思路
- 定义、输入数,定义计算器
- 将两个整数数拆开,定义一个数作为遍历的数,然后从最低位到最高位的一个遍历。
坑点
- 你需要定义一个数去遍历从l到r的所有数。
算法一:for循环+if判断
时间复杂度
- 输出大小: 1.83190059661865 MiB
- 编译时间: 0.61s
实现步骤
- 定义输入数,定义计数器,for循环遍历每一个数(从开始到结束)
- 拆开这两个数中间的整数,定义一个数去遍历拆开的数,然后一个一个查找有没有2,有就计数器加一没有就继续。
代码
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;//头文件
int main()
{
int l,r;//根据题目输入定义两个数
cin>>l>>r;//依次输入
int m,sum=0;//从个位开始遍历
for(int i=l;i<=r;i++)//for循环依次遍历每个数(从l开始到r结束)
{
m=i;
while(m!=0)
{
if(m%10==2)
sum++;
m=m/10;
}
}
cout<<sum;
return 0;
}
总结
难度:入门级别。只要有思路就很好做。