P1179 [NOIP2010 普及组] 数字统计

P1179 [NOIP2010 普及组] 数字统计

[P1179 [NOIP2010 普及组] 数字统计](https://www.luogu.com.cn/problem/P1042?contestId=150154
P1179 [NOIP2010 普及组] 数字统计

题意

输入两个数,作为范围,去寻找这两个数之间2的数量。

思路

  1. 定义、输入数,定义计算器
  2. 将两个整数数拆开,定义一个数作为遍历的数,然后从最低位到最高位的一个遍历。

坑点

  1. 你需要定义一个数去遍历从l到r的所有数。

算法一:for循环+if判断

时间复杂度
  • 输出大小: 1.83190059661865 MiB
  • 编译时间: 0.61s
实现步骤
  1. 定义输入数,定义计数器,for循环遍历每一个数(从开始到结束)
  2. 拆开这两个数中间的整数,定义一个数去遍历拆开的数,然后一个一个查找有没有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;
} 

总结

难度:入门级别。只要有思路就很好做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值