2013NOIP普及组真题 1. 计数问题

线上OJ:

一本通:http://ybt.ssoier.cn:8088/problem_show.php?pid=1961

核心思想:

本来想找规律,后来发现本题的数据范围不大,n为 1 0 6 10^6 106,即使每一位都判断一次,最坏的情况下时间复杂度也仅为 O ( 7 ∗ 1 0 6 ) O(7*10^6) O(7∗106),故本题可以考虑直接枚举,不需要去找数字上的规律了。

题解代码:
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int n, x, ans=0;

int main()
{
    cin >> n >> x;
    for(int i = 1; i <= n; i++)
    {
        int tmp = i;  // 这里需要用tmp代替i,因为i要++,i不能变
        while(tmp)  
        {
            if((tmp % 10) == x)  ans++;  // 如果最后一位是x,则ans++
            tmp = tmp / 10;    // 去除个位数字
        }
    }
    cout << ans << endl;
    return 0;
}
相关推荐
Ajiang28247353048 分钟前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
盼海12 分钟前
排序算法(五)--归并排序
数据结构·算法·排序算法
网易独家音乐人Mike Zhou4 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
‘’林花谢了春红‘’5 小时前
C++ list (链表)容器
c++·链表·list
机器视觉知识推荐、就业指导6 小时前
C++设计模式:建造者模式(Builder) 房屋建造案例
c++
Swift社区7 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman8 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
IT 青年8 小时前
数据结构 (1)基本概念和术语
数据结构·算法
Yang.998 小时前
基于Windows系统用C++做一个点名工具
c++·windows·sql·visual studio code·sqlite3