1 条题解
-
0
首先,我们注意到2013的倍数在十进制下的最后三位数字是由2013的最后三位数字决定的,即013。因此,我们需要找到满足条件的最小正整数m和n,使得m和n的十进制表示中最后三位数字与2013的倍数相同。
具体步骤如下:
确定2013的倍数最后三位数字的规律:
2013的倍数在十进制下的最后三位数字是013。 要使2013m和2013n的最后三位数字相同,m和n必须是2013的某个倍数的整数倍。 寻找满足条件的最小正整数m和n:
从1开始逐个检查每个整数是否满足条件。 定义一个变量来记录当前找到的最小满足条件的m和n。 每次检查一个数时,计算其除以2013的余数,如果余数为0,则该数是2013的倍数。 继续检查下一个数,直到找到满足条件的最小正整数m和n。
#include <iostream> using namespace std; int main() { int m = 0, n = 0; // 初始化m和n为0 bool found = false; // 标记是否找到满足条件的m和n int target = 2013; // 目标值,用于检查最后三位数字是否相同 int temp = 0; // 临时变量,用于检查每个数是否满足条件 while (!found) { temp++; // 检查下一个数 if (temp % 1000 == target % 1000) { // 检查最后三位数字是否相同 if (temp % 2013 == 0) { // 检查是否是2013的倍数 if (!found || temp < m) { // 如果找到新的最小值,更新m和n m = n; n = temp; } found = true; // 找到满足条件的m和n,跳出循环 } else if (temp > m) { // 如果不是倍数,但比当前m大,更新n为temp n = temp; } } } cout << "最小正整数m和n分别为: " << m << " 和 " << n << endl; // 输出结果 return 0; }
信息
- ID
- 531
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 2
- 上传者