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

week1-[分支嵌套]公因数

week1-[分支嵌套]公因数

题目描述

给定 444 个正整数 a,b,c,ka,b,c,ka,b,c,k。如果 a,b,ca,b,ca,b,c 都是 kkk 的倍数,那么称 kkka,b,ca,b,ca,b,c 的公因数。否则如果某两个数都是 kkk 的倍数,那么称 kkk 是这两个数的公因数。问 kkk 是哪些数的公因数?

输入格式

输入共 111444 个正整数 a,b,c,ka,b,c,ka,b,c,k

输出格式

输入共 111 行,为 abacbcabc 表示答案。如果 kkk 不是某两个数或这三个数的公因数,输出 none

样例 #1

样例输入 #1

8 10 14 2

样例输出 #1

abc

样例 #2

样例输入 #2

11 16 15 5

样例输出 #2

none

样例 #3

样例输入 #3

9 16 12 3

样例输出 #3

ac

提示

数据范围

对于所有数据,1≤a,b,c,k≤10001\leq a,b,c,k\leq 10001a,b,c,k1000

week1-[分支嵌套]公因数 题解

1. 阅读题目

给定 4 个正整数 a,b,c,ka,b,c,ka,b,c,k,我们要判断 kkk 是否为 a,b,ca,b,ca,b,c 的公因数。

规则:

  • 如果 a、b、c 都是 kkk 的倍数 → 输出 abc
  • 否则,如果有且只有两个是 kkk 的倍数 → 输出对应的两个字母(ab / ac / bc
  • 如果没有两个或三个数是 kkk 的倍数 → 输出 none

2. 分析问题

  • 判断是否是倍数:用 x % k == 0
  • 优先级:
    1. 三个数都满足 → abc
    2. 只满足两个数 → 输出这两个字母
    3. 其他情况 → none
  • 因为三个数的判断优先,所以可以用 分支嵌套 先判断三人情况,再判断两人情况。

3. 解决方案

  • 读入 a, b, c, k

  • 判断:

    if (a%k==0 && b%k==0 && c%k==0) 输出 "abc"
    else if (a%k==0 && b%k==0) 输出 "ab"
    else if (a%k==0 && c%k==0) 输出 "ac"
    else if (b%k==0 && c%k==0) 输出 "bc"
    else 输出 "none"
    

4. C++ 代码实现

#include <iostream>
using namespace std;int main() {int a, b, c, k;cin >> a >> b >> c >> k;if (a % k == 0 && b % k == 0 && c % k == 0) {cout << "abc";} else if (a % k == 0 && b % k == 0) {cout << "ab";} else if (a % k == 0 && c % k == 0) {cout << "ac";} else if (b % k == 0 && c % k == 0) {cout << "bc";} else {cout << "none";}return 0;
}

5. 数据测试

样例 1

输入

8 10 14 2

过程

  • 8 % 2 == 0
  • 10 % 2 == 0
  • 14 % 2 == 0
    → 三个都满足 → 输出 abc

输出

abc

样例 2

输入

11 16 15 5

过程

  • 11 % 5 != 0
  • 16 % 5 != 0
  • 15 % 5 == 0
    → 只有一个满足 → 输出 none

输出

none

样例 3

输入

9 16 12 3

过程

  • 9 % 3 == 0
  • 16 % 3 != 0
  • 12 % 3 == 0
    → 满足 a 和 c → 输出 ac

输出

ac

6. 时间复杂度与空间复杂度

  • 时间复杂度:常数级 O(1)
  • 空间复杂度:常数级 O(1)

7. 优化方案

  • 目前是固定 3 个数,如果扩展到更多数,可以用数组存储,然后统计 %k==0 的元素下标,输出对应标签。
  • 如果数据很大,可提前判断 k 是否大于最大值,直接输出 none,减少取模运算次数(本题数据量极小,这种优化无意义)。
http://www.lryc.cn/news/620357.html

相关文章:

  • 身份全景图
  • 【20-模型诊断调优】
  • 云原生俱乐部-k8s知识点归纳(2)
  • 云原生俱乐部-杂谈1
  • B站 韩顺平 笔记 (Day 18)
  • 从合规到卓越:全星QMS如何成为制造企业的质量战略引擎
  • 十一,算法-快速排序
  • Python/Node.js 调用taobao API:构建实时商品详情数据采集服务
  • Neural Bandit Based Optimal LLM Selection for a Pipeline of Tasks
  • 监控插件SkyWalking(二)集成方法
  • Node.js/Python 实战:封装淘宝商品详情 API 客户端库(SDK)
  • vLLM(Vectorized Large Language Model Serving) 的深度解析
  • npm介绍,指令合集,换源指令
  • 问题总结三
  • VSC遇到的问题:无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。
  • P12348 [蓝桥杯 2025 省 A 第二场] 交互
  • Java零基础笔记16(Java编程核心:存储读写数据方案—File文件操作、IO流、IO框架)
  • 17. 如何判断一个对象是不是数组
  • 【LeetCode】4. 寻找两个正序数组的中位数
  • hadoop 前端yarn 8088端口查看任务执行情况
  • 【深入浅出STM32(1)】 GPIO 深度解析:引脚特性、工作模式、速度选型及上下拉电阻详解
  • 数据结构:队列(Queue)与循环队列(Circular Queue)
  • linux_网络层-ip协议
  • 力扣 hot100 Day72
  • 深入理解 Cookie 与 Session —— Web 状态保持详解与实战
  • SpringBoot 整合 Langchain4j 系统提示词与用户提示词实战详解
  • JavaWeb(05)
  • TCP客户端Linux网络编程设计详解
  • 人工智能——CNN基础:卷积和池化
  • HiSmartPerf使用WIFI方式连接Android机显示当前设备0.0.0.0无法ping通!设备和电脑连接同一网络,将设备保持亮屏重新尝试