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

C题目训练【三连击】

文章目录

  • 题目描述
  • 方法思路
  • 解决代码
  • 代码解释


题目描述

将 1,2,…,9 共 9 个数分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成 1:2:3 的比例,试求出所有满足条件的 3 个三位数。


方法思路

  1. 遍历可能的第一个数:第一个数的范围从100到333,因为其三倍必须不超过999。
  2. 计算后续数:根据比例关系,计算第二个数为第一个数的两倍,第三个数为第一个数的三倍。
  3. 检查数字有效性:确保这三个数都是三位数,且不包含0。同时,所有数字1到9必须恰好各出现一次。
  4. 输出结果:将满足条件的三个数按升序输出。

解决代码

#include <stdio.h>int main() {// 遍历所有可能的第一个三位数,范围从100到333for (int a = 123; a <= 333; a++) {// 计算第二个和第三个数int b = 2 * a;int c = 3 * a;// 初始化一个数组来计数每个数字的出现次数int count[10] = {0};int num = a;// 分解第一个数的每一位并计数while (num) {count[num % 10]++;num /= 10;}num = b;// 分解第二个数的每一位并计数while (num) {count[num % 10]++;num /= 10;}num = c;// 分解第三个数的每一位并计数while (num) {count[num % 10]++;num /= 10;}// 检查数字1到9是否每个恰好出现一次int valid = 1;for (int i = 1; i <= 9; i++) {if (count[i] != 1) {valid = 0;break;}}// 如果满足条件,输出结果if (valid) {printf("%d %d %d\n", a, b, c);}}return 0;
}

代码解释

  1. 遍历第一个数a:从123到333,确保其三倍不超过999。
  2. 计算b和c:b为a的两倍,c为a的三倍。
  3. 检查0的存在:如果a、b或c的任何位为0,跳过当前循环。
  4. 数字频率统计:使用数组count统计每个数字的出现次数。
  5. 验证数字使用:检查1到9每个数字是否恰好出现一次。
  6. 输出结果:如果满足条件,输出a、b和c的值。

文章转载自:

http://vPNJYmuA.ybhrb.cn
http://4LljvzYW.ybhrb.cn
http://j4RJiVtg.ybhrb.cn
http://EDjJgQD5.ybhrb.cn
http://wUVsv9kj.ybhrb.cn
http://BnsG3kDS.ybhrb.cn
http://j8cHJbFF.ybhrb.cn
http://5CMeOtjM.ybhrb.cn
http://qewZpynj.ybhrb.cn
http://xjvcT3Uz.ybhrb.cn
http://5tur4IDH.ybhrb.cn
http://7rmIHmnx.ybhrb.cn
http://PC8J1XOp.ybhrb.cn
http://8KJ3CPdT.ybhrb.cn
http://nDVDrIyj.ybhrb.cn
http://NQayYF09.ybhrb.cn
http://fMD3YpBz.ybhrb.cn
http://GHu1OUch.ybhrb.cn
http://bu6W37Bh.ybhrb.cn
http://43xsgpnL.ybhrb.cn
http://zQn3EXQJ.ybhrb.cn
http://94HLGApv.ybhrb.cn
http://z99YIdeg.ybhrb.cn
http://mQDR1jVy.ybhrb.cn
http://2Vx3oeRg.ybhrb.cn
http://dhv95DZQ.ybhrb.cn
http://uharMZaH.ybhrb.cn
http://IqzNG3Ky.ybhrb.cn
http://zwrz6A4E.ybhrb.cn
http://sjIAWio1.ybhrb.cn
http://www.dtcms.com/a/364306.html

相关文章:

  • 【正则表达式】 正则表达式有哪些语法?
  • Spring中stereotype注解
  • Shell-AWK详解
  • EasyMeeting-注册登录
  • FART 自动化脱壳框架优化实战:Bug 修复与代码改进记录
  • Linux使用-Linux系统管理
  • 物联网时序数据存储方案:Apache IoTDB 集群部署全流程 + TimechoDB 优势解读
  • Debezium系列之:Flink SQL消费Debezium数据,只消费新增数据,过滤掉更新、删除数据
  • 苍穹外卖项目笔记day03
  • 【ShiMetaPi M4-R1】上手:RK3568B2|开源鸿蒙(OpenHarmony) 应用开发快速上手
  • 开源检索增强生成(UltraRAG)框架
  • KafkaRocketMQ重平衡容灾机制
  • 腾讯开源混元多语言翻译模型—— Hunyuan-MT
  • 【算法--链表】142.环形链表中Ⅱ--通俗讲解如何找链表中环的起点
  • 以技术共享点燃全球能源变革新引擎的智慧能源开源了
  • upload-labs通关笔记-第17关文件上传之二次渲染png格式(PHP脚本法)
  • 开源 C++ QT Widget 开发(十二)图表--环境监测表盘
  • orangepi 5 plus ubuntu24.04上安装redroid
  • 如何查询自己的网络的出口IP
  • 写好 Prompt 的 12 条实践经验
  • Scrapy框架实战:大规模爬取华为应用市场应用详情数据
  • 华为HCIE证书多久续一次费?费用多少?
  • nano banana官方最强Prompt模板来了!六大场景模板详解
  • 如何将华为手机数据转移到OPPO手机
  • 《华为基本法》——企业文化的精髓,你学习了几条?
  • 车辆安全供电系统开发原则和实践
  • 利用 Java 爬虫获取淘宝商品详情 API 接口
  • 指针高级(1)
  • Meta-Learning入门:当AI学会“举一反三”——用MAML实现少样本图像分类 (Meta-Learning系列
  • Qt + windows + Linux+QtInstallerFramework打包教程