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;
}
相关推荐
奋进的小暄几秒前
贪心算法(15)(java)用最小的箭引爆气球
算法·贪心算法
Scc_hy13 分钟前
强化学习_Paper_1988_Learning to predict by the methods of temporal differences
人工智能·深度学习·算法
巷北夜未央14 分钟前
Python每日一题(14)
开发语言·python·算法
javaisC16 分钟前
c语言数据结构--------拓扑排序和逆拓扑排序(Kahn算法和DFS算法实现)
c语言·算法·深度优先
爱爬山的老虎16 分钟前
【面试经典150题】LeetCode121·买卖股票最佳时机
数据结构·算法·leetcode·面试·职场和发展
SWHL17 分钟前
rapidocr 2.x系列正式发布
算法
阳光_你好31 分钟前
请详细说明opencv/c++对图片缩放
c++·opencv·计算机视觉
杰克逊的黑豹39 分钟前
不再迷茫:Rust, Zig, Go 和 C
c++·rust·go
雾月5542 分钟前
LeetCode 914 卡牌分组
java·开发语言·算法·leetcode·职场和发展
想跑步的小弱鸡1 小时前
Leetcode hot 100(day 4)
算法·leetcode·职场和发展