首页 > 其他分享 >计算从1到正整数n中,出现多少次给定的数(0到9)

计算从1到正整数n中,出现多少次给定的数(0到9)

时间:2022-11-16 21:14:39浏览次数:37  
标签:10 正整数 计算 int num 给定 base ans mod

输入一个[0-9]之间的数字m,统计出从1开始到正整数n中的数字的序列里,一共出现多少次这个数字。

基本思路
考虑在十进制下,n的每一位可能出现多少次m。
举个例子:
若要求1到153中出现多少次2,153/10=15,说明当个位为2时,至少由15数处在这个范围内,002,012,022,032...,142
为什么说时至少呢?因为2<3,即152也处在这个范围内,所以个位数一共出现16次2。
百位,千位同理。

参考代码

def ff(x, num):
    m, ans = 1, 0
    while x // m > 0:
        h, mod = divmod(x, m * 10)
        cur, l = divmod(mod, m)
        if cur > num:
            ans += h * m + m
        elif cur == num:
            ans += h * m + l + 1
        else:
            ans += h * m
        m *= 10
    return ans
int f(int n, int m)
{
    int ans = 0;
    int base = 1;
    while (n / base)
    {
        int h = n / (base * 10);
        int mod = n % (base * 10);
        int l = mod / base;
        int res = mod % base;
      //将数字拆成3部分,h表示左边的部分,l表示枚举到的那一位(中间那部分),res表示右边剩下的那部分
        if (l > m)
            ans += h * base + base;
        else if (l == m)
            ans += h * base + res + 1;
        else
            ans += h * base;
        base *= 10;
    }
    return ans;
}

标签:10,正整数,计算,int,num,给定,base,ans,mod
From: https://www.cnblogs.com/hetailang/p/16897505.html

相关文章

  • (8tkinter)设计一个简单的计算器
    题目说明设计一个简单的计算器,如下图所示,定义tkinter串变量tkStrVar;添加文本框控件Exp,用于接收输入的数学表达式,并指定textvariable属性绑定tkinter串变量tkStrVar;添加标......
  • 云计算基础设施的逻辑架构
    按照云计算分布式的特点,云计算基础设施可以分布在不同的地域,形成多个逻辑隔离的区域数据中心,且各区域数据中心之间通过大带宽链路实现互联,并可纳入同一套云管理平台进行管理......
  • 计算机科学基础班
    教学对象本课程教学对象为作者本人教学语言本门课程采用的教学语言是chezscheme和Javascript,在学习中相互对比,学生将从0开始,学会计算机科学中最核心的思想,从无到有创......
  • 计算机缺失msvcp140.dll文件
    在控制面板的卸载程序中, 卸载电脑的默认VC_redist.x64重新下载安装 运行环境包VC_redist.x64https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-r......
  • 函数计算|如何使用层解决依赖包问题?
    作者:落泥在使用阿里云函数计算平台时,如果您曾经遇到过以下问题,本文应该会对您有所帮助:第三方依赖包太大,每次更新代码都非常耗时,甚至会出现超过代码包限制的情况,我该怎......
  • 5-计算机网络面试题
    计算机网络体系结构在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。网络协......
  • 【Python基础】科学计算库Scipy简易入门
    0.导语Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy......
  • AWS、谷歌云、Azure:云计算安全功能比较
    每个云平台提供给客户用以保护其云资产安全工具和安全功能都不一样。公有云安全建立在共担责任概念基础之上:大型云服务提供商交付安全超大规模环境,但保护推上云端一切是客......
  • 计算机等级考试二级C语言程序设计专项训练题——程序修改题(二)
    11、给定程序MODI1.C中规定输入的字符串全部为字母,fun函数的功能是:统计a所指字符串中每个字母在字符串中出现的次数(统计时不区分大小写),并将出现次数最高的字母输出(如果有多......
  • 计算机等级考试二级C语言程序设计专项训练题——程序修改题(一)
    1、下列给定程序中函数proc的功能是:取出长整型变量s中偶数位上的数,依次构成一个新数放在t中。例如,当s中的数为123456789时,t中的数为2468。请修改程序中的错误,使它能得出正......