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

week3-[循环嵌套]好数

week3-[循环嵌套]好数

题目描述

如果一个正整数 xxx 只有最左边一位不是 000,其余都是 000,那么称其为好数。例如 400040004000222 都是好数,但是 120120120 不是。

给定正整数 nnn,在 111nnn 间有多少个数是好数?又有多少个数能表示为两个好数的和?

输入格式

输入共 111111 个正整数 nnn

输出格式

输出共 222 行。

111111 个整数表示有多少个数是好数。

222111 个整数表示有多少个数能表示为两个好数之和。

样例 #1

样例输入 #1

15

样例输出 #1

10
14

提示

样例解释 111

1,2,3,4,5,6,7,8,9,101,2,3,4,5,6,7,8,9,101,2,3,4,5,6,7,8,9,10 都是好数。

数据范围

对于所有数据,1≤n≤100001\leq n\leq 100001n10000

这题分两部分:统计好数统计能表示为两个好数之和的数


🔎 分析

1️⃣ 什么是好数

  • 定义:只有最左边一位不是 0,其余都是 0
  • 也就是形式为 d * 10^k,其中 d=1~9k ≥ 0
  • 例子:
    • 2 → 好数
    • 10 → 好数
    • 120 → 不是好数
方法:
  • 对 1~n 遍历:
    • 转字符串检查是否首位非零,其余都是零
    • 或者数学方法:判断 x 是否能被其首位数字后的 10 的幂整除

2️⃣ 统计能表示为两个好数之和的数

  • 先生成所有好数 good[] ≤ n
  • 枚举所有两两组合 good[i] + good[j] ≤ n → 计数
  • 注意:不同组合得到相同的和只算一次 → 用布尔数组 ok[1..n] 标记

📝 C++ 实现

#include <bits/stdc++.h>
using namespace std;// 判断一个数是否为好数
bool isGood(int x) {while (x % 10 == 0 && x > 0) x /= 10; // 去掉末尾0return x >= 1 && x <= 9;               // 去掉末尾0后是否在1~9
}int main() {int n;cin >> n;vector<int> good;for (int i = 1; i <= n; i++) {if (isGood(i)) good.push_back(i);}cout << good.size() << endl;vector<bool> can(n+1, false);for (int i = 0; i < good.size(); i++) {for (int j = i; j < good.size(); j++) {int sum = good[i] + good[j];if (sum <= n) can[sum] = true;}}int cnt = 0;for (int i = 1; i <= n; i++) if (can[i]) cnt++;cout << cnt << endl;return 0;
}c++
http://www.dtcms.com/a/343151.html

相关文章:

  • 交易所开发实战:打造安全高效的数字货币交易平台
  • 使用java制作minecraft3.0版本
  • 什么是默克尔树
  • Android系统框架知识系列(十三):Sensor Manager Service - Android的感官世界
  • Trae配置rules与MCP
  • 企业微信+AI在金融行业落地:从部署到场景的实践路径
  • CLruCache::BucketFromIdentifier函数分析
  • CroCT
  • 在互联网大厂的Java面试:谢飞机的搞笑历险记
  • Uniapp非脚手架项目打包为5+ App后,在Android端按返回键会意外退出应用。
  • 基于昇腾玩转电影级视频生成模型Wan 2.2
  • ES_索引的操作
  • 基础网络模型
  • 【矩池云】实现Pycharm远程连接,上传数据并解压缩
  • 为什么程序部署到线上,就无法读取环境变量了
  • B2B工业品制造业TOB大客户营销培训老师培训师唐兴通谈AI数字化销售AI销冠底层逻辑数字化转型创新增长业绩
  • MyBatis-Plus MetaObjectHandler的几个坑(主要是id字段)
  • 《AI智脉速递》2025 年 8 月15 日 - 21 日
  • JetBrains 内的 GitHub Copilot Agent Mode + MCP:从配置到实战
  • vmware安装centos7
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第二章知识点问答(21题)
  • A股大盘数据-20250821 分析
  • 领域驱动中IUnitOfWork是干什么的
  • 【StarRocks】-- SQL CTE 语法
  • 机器学习中的集成算法与 k 均值聚类算法概述
  • 机器学习5
  • 解决办法:Chrome插件不能用,这些扩展程序不再受支持,因此已停用
  • 动态寻北仪如何在矿用掘进机中进行应用?
  • 用Vue2和Echarts画图的基本流程
  • AI升级社区便民服务:AI办事小程序高效办证+应急系统秒响应,告别跑腿愁住得更安心