当前位置: 首页 > news >正文

益阳网站建设企业山东网站推广营销设计

益阳网站建设企业,山东网站推广营销设计,比较好的WordPress中文主题,上海申远装饰公司官网题目理解 题目要求计算所有不大于 N 的非负整数中数字 D 出现的总次数。例如,当 D1 且 N12 时,数字1出现在1、10、11(两次)、12中,共5次。 输入输出分析 输入格式: 两个正整数 D 和 N,其中1≤…

题目理解

题目要求计算所有不大于 N 的非负整数中数字 D 出现的总次数。例如,当 D=1 且 N=12 时,数字1出现在1、10、11(两次)、12中,共5次。

输入输出分析

输入格式

  • 两个正整数 D 和 N,其中1≤D≤9,1≤N<1016。

输出格式

  • 一个整数,表示数字 D 在所有不大于 N 的非负整数中出现的总次数。

解题思路

为了高效计算数字 D 在1到N之间的出现次数,可以采用逐位统计的方法。具体步骤如下:

  1. 逐位处理

    • 对于数字的每一位(个位、十位、百位等),分别统计该位上数字 D 出现的次数。

    • 假设当前处理的是第k位(从右到左,个位为第1位),计算该位上 D 出现的次数。

  2. 统计方法

    • 将数字分为三部分:高位、当前位、低位。

    • 根据当前位的值与 D 的关系,分情况计算:

      • 如果当前位小于 D,则高位决定该位上 D 出现的次数。

      • 如果当前位等于 D,则高位和低位共同决定该位上 D 出现的次数。

      • 如果当前位大于 D,则高位加1决定该位上 D 出现的次数。

  3. 特殊情况处理

    • 当 D=0 时,需要额外处理,因为数字的最高位不能为0。

AC代码:

#include <bits/stdc++.h>
using namespace std;long long ans(long long n, int d) {long long cnt = 0;long long x = 0, y = 0, z = 0;long long sum = 1;while (n / sum > 0) {x= n - (n / sum) * sum;y = (n / sum) % 10;z = n / (sum * 10);if (y < d) {cnt += z * sum;} else if (y == d) {cnt += x * sum + x + 1;} else {cnt += (x + 1) * sum;}if (d == 0) {cnt-= sum;}sum *= 10;}return cnt;
}int main() {int D;long long N;cin >> D >> N;cout << ans(N, D) << endl;return 0;
}

http://www.dtcms.com/a/454971.html

相关文章:

  • 甘肃建设投资集团控股有限网站简单网站建设视频教程
  • 网站建设文编响应式网站设计的优点
  • 三网合一网站优秀的设计网站有哪些
  • 定制版网站建设详细报价专业的网站建设公司
  • 做中东市场哪个网站合适网站app制作
  • 网站建设钅金手指排名十五wordpress 图片等比缩放
  • 做网赌网站扫二维码直接进入网站 怎么做
  • 网站必须要备案吗html5手机网站特效
  • 促销推广方式有哪些漳州网站优化
  • 网站建设的具体布局建设网站需要什么步骤
  • 淘宝客网站推广工具上海国际进出口贸易博览会
  • 哪个网站是专门做兼职的两个域名指向同一个网站怎么做
  • 1688 商品详情接口深度开发:从供应链数据解析到批量采购决策支持
  • C++递归函数
  • 两个网站php 一个空间企业公司网站模板下载
  • jsp做网站de后台管理网站拥有者查询
  • 目前网站开发语言ios网站开发视频教程
  • 室内设计8年熬不起了兰州企业网络优化方案
  • 网站建设做的好网站设计色板
  • PySide6 自定义文本查找对话框(QFindTextDialog)以及调用示例
  • 做网站公司报价惠州做棋牌网站建设有哪些公司
  • 苏州交通网站建设中国百强企业
  • 响应式网站预览福建建设网站
  • wordpress 网站标题设置免费网站一级a做爰在免费线看
  • 教学设计代做去什么网站产品宣传推广方案
  • MySQL主主复制+Keepalived高可用配置
  • 网站的留言板怎么做网站防封链接怎么做
  • 郓城做网站公司西宁平台网站建设
  • 去马来西亚做网站网站网站后台模块
  • spring容器启动流程(反射视角)