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;
}
相关推荐
Lumos_77719 小时前
程序的诞生
c++
basketball61619 小时前
C++ static_cast 完全解析
开发语言·c++
weixin_4684668519 小时前
支持向量机新手实战指南
人工智能·python·算法·机器学习·支持向量机
Lumbrologist19 小时前
【C++】零基础入门 · 第 12 节:模板与 STL 入门
开发语言·c++
weixin_4684668520 小时前
机器学习之决策树新手实战指南
人工智能·python·算法·决策树·机器学习·ai
wanghu202420 小时前
ABC460_E题题解
c++·算法
z2005093020 小时前
今日算法(回溯子集)
数据结构·算法·leetcode
Hesionberger20 小时前
巧用异或找出唯一数字(多解)
java·数据结构·python·算法·leetcode
变量未定义~20 小时前
阶乘的约数和、斐波那契数列、数列区间最大值(ST表)
数据结构·算法
智者知已应修善业20 小时前
【51单片机象棋快棋赛 电子裁判器】2023-12-27
c++·经验分享·笔记·算法·51单片机