子数整数
题目描述
对于一个五位数 ,可将其拆分为三个子数:
例如,五位数 可以拆分成
现在给定一个正整数 ,要求你编程求出 到 之间所有满足下述条件的五位数,条件是这些五位数的三个子数 都可被 整除。
输入格式
一个正整数 。
输出格式
每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出 No
。
样例 #1
样例输入 #1
1 | 15 |
样例输出 #1
1 | 22555 |
提示
题解
1 | k = int(input()) |
代码其实还可以优化,把 qbsg 的计算方法改一下
1 | q = (i % 10000) // 1000 |
题解解释
来自 ChatGPT
这段代码的作用是寻找在范围 [10000, 30000]
内的所有满足特定条件的五位数。根据题目描述,这些五位数可以被拆分为三个子数 sub1
, sub2
, sub3
,而且这三个子数都能被输入的整数 K
整除。
代码首先通过 input()
函数获取用户输入的整数 K
。然后通过一个循环遍历范围 [10000, 30000]
内的所有五位数。
在循环中,通过整数除法 //
和取余 %
运算符计算了每个五位数的各位数字。这些数字被用于构造三个子数 sub1
, sub2
, sub3
。
接下来,检查每个五位数的三个子数是否都能被 K
整除。如果满足条件,则打印该五位数,并将计数器 count
设为 1
,以表示至少有一个五位数满足条件。
循环结束后,检查 count
的值。如果 count
仍然为 0
,则说明没有找到满足条件的五位数,输出 “No”。
知识点
这题不难,就是取余取整
注意 input 要转成 int 型
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 W1ndysの小屋!
评论