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

week2-[循环嵌套]数位和为m倍数的数

week2-[循环嵌套]数位和为m倍数的数

题目描述

给定三个正整数 l,r,ml,r,ml,r,m,请求出 lllrrr 之间有哪些数满足数位和为 mmm 的倍数。一个数的数位和定义为它的各个数码相加之和,如 523155231552315 的数位和为 5+2+3+1+5=165 + 2 + 3 + 1 + 5=165+2+3+1+5=16

输入格式

输入只有 111 行,该行包括 333 个正整数 l,rl,rl,rmmm

输出格式

输出 111 行,按从小到大的顺序将 lllrrr 之间和为 mmm 倍数的数输出,每两个数字之间用恰好一个空格隔开。 如果 lllrrr 之间不存在和为 mmm 倍数的数,则输出一个整数 −1-11

样例 #1

样例输入 #1

6 20 9

样例输出 #1

9 18

样例 #2

样例输入 #2

7 15 2

样例输出 #2

8 11 13 15

样例 #3

样例输入 #3

9 200 20

样例输出 #3

-1

提示

样例解释1

666202020 之间:

999 的数位和为 999,为 999 的倍数。

181818 的数位和为 1+8=91+8=91+8=9,为 999 的倍数。

样例解释2

777151515 之间:

888 的数位和为 888,为 222 的倍数。

111111 的数位和为 1+1=21+1=21+1=2,为 222 的倍数。

131313 的数位和为 1+3=41+3=41+3=4,为 222 的倍数。

151515 的数位和为 1+5=61+5=61+5=6,为 222 的倍数。

样例解释3

999200200200 之间不存在和为 202020 倍数的数。

数据范围

对于所有数据,1≤l,r≤1000000000,0≤r−l≤10000,2≤m≤301 \le l, r \le 1000000000, 0 \le r - l \le 10000,2 \le m \le 301l,r1000000000,0rl10000,2m30

1. 阅读题目

  • 输入:三个正整数 l,r,ml, r, ml,r,m
  • 输出:所有在区间 [l,r][l, r][l,r] 内,数位和是 mmm 的倍数的整数。
  • 如果没有符合条件的数,输出 -1
  • 注意:
    • r−l≤10000r - l \leq 10000rl10000,所以最多检查 10001 个数,完全可以暴力。
    • 数位和计算方式:把数拆成个位、十位、百位……相加。

2. 分析问题

  • 遍历区间 [l, r],对每个数 x
    1. 求它的数位和 digitSum(x)
    2. 判断 digitSum(x) % m == 0
    3. 如果成立,就保存 x
  • 最后:
    • 如果至少有一个数 → 按顺序输出,中间空格隔开。
    • 如果没有 → 输出 -1

重点:数位和的计算

int digitSum(int x) {int sum = 0;while (x > 0) {sum += x % 10;x /= 10;}return sum;
}

3. C++ 代码实现

#include <iostream>
using namespace std;int digitSum(int x) {int sum = 0;while (x > 0) {sum += x % 10;x /= 10;}return sum;
}int main() {ios::sync_with_stdio(false);cin.tie(NULL);int l, r, m;cin >> l >> r >> m;bool found = false;for (int i = l; i <= r; i++) {if (digitSum(i) % m == 0) {if (found) cout << " ";cout << i;found = true;}}if (!found) cout << -1;cout << "\n";return 0;
}

✅ 总结

  • 用循环枚举区间 [l, r]
  • 嵌套循环(或 while)计算数位和。
  • 逐个判断是否是 mmm 的倍数。
  • 格式控制:注意空格,只在输出第二个及之后的数时加空格。
http://www.dtcms.com/a/338048.html

相关文章:

  • 牛客周赛 Round 105(小苯的xor构造/小苯的权值计算/小苯的01矩阵构造/小苯的重排构造/小苯的xor图/小苯的前缀gcd构造)
  • 【石油化工行业SAP整体解决方案内容总结】
  • 直播平台如何集成美颜SDK与动态贴纸?开发流程与实战指南
  • 场外期权的股票停牌了怎么处理?
  • 【tips】unsafe-eval线上页面突然空白
  • 基于Transformer+多模态图像融合取得最新突破的创新点分析
  • diffuxers学习--AutoPipeline
  • 申请免费的SSL证书,到期一键续签
  • 从 ORA-12703 到顺利入库:Go + Oracle 11g GBK 字符集踩坑记20250818
  • 【数据结构】深入理解双向链表:结构、实现与对比分析
  • 【DDIA】第十章:解析Reduce端连接与分组技术
  • Java基础 8.18
  • lamp架构部署wordpress
  • 在开发后端API的时候,哪些中间件比较实用
  • Less( 预处理语言)的使用方法
  • 什么叫做 “可迭代的产品矩阵”?如何落地?​
  • 【C/C++】For 循环展开与性能优化【附代码讲解】
  • bun + vite7 的结合,孕育的 Robot Admin 【靓仔出道】(十三)
  • 如何在泛微 OA 中实现流程编号的标准化配置
  • 工程项目管理软件:项目总超预算?进度总滞后?企智汇工程项目管理软件一招打通业主、合同、分包全流程,效率翻倍!实操指南!
  • Ultimate-Python-de-Cero-a- Experto-Un-Lib-Nicolas-Schurmann-翻译版
  • 构建时序感知的智能RAG系统:让AI自动处理动态数据并实时更新知识库
  • 线程安全 -- 2
  • 单片机驱动LCD显示模块LM6029BCW
  • 实践笔记-小端模式下的寄存器数据输入技巧;图形化界面配置注意事项。
  • 实现自己的AI视频监控系统
  • PostgreSQL Certified Master 专访 | 第三期 李洋
  • ADC的实现(单通道,多通道,DMA)
  • Python pyzmq 库详解:从入门到高性能分布式通信
  • 学习嵌入式的第二十天——数据结构