代码1
#include <iostream>
int main() {
int divisor, dividend;
// 根据题目条件,商是7,余数是5
// 被除数 = 除数 * 商 + 余数
// 4倍后的被除数 = 4 * (除数 * 7 + 5)
// 4倍后的除数 = 4 * 除数
// 商不变,仍为7
// 余数变为4 * 5 = 20
// 遍历可能的除数,找到满足条件的被除数
for (divisor = 1; divisor <= 1000; ++divisor) {
dividend = divisor * 7 + 5;
int new_dividend = 4 * dividend;
int new_divisor = 4 * divisor;
// 检查条件是否满足
if ((new_dividend + new_divisor + 7 + 20) == 1039) {
std::cout << "原来的被除数: " << dividend << std::endl;
std::cout << "原来的除数: " << divisor << std::endl;
break;
}
}
return 0;
}
代码2
#include <iostream>
int main() {
// 根据题目条件,被除数和除数都扩大到原来的4倍后
// 它们的和(不包括商和余数)加上商和扩大后的余数等于1039
// 商不变,仍为7
// 余数扩大为原来的4倍,即20
// 所以先计算被除数和除数的和(不包括商和余数)
int sum_without_quotient_and_remainder = 1039 - 7 - 20;
// 此时被除数比除数的7倍大20
// 所以 (被除数 - 20) 是除数的7倍
// 即 (被除数 - 20) = 除数 * 7
// 又因为被除数 = 除数 * 7 + 5(根据题目条件)
// 所以我们可以将这两个等式联立起来求解
// 但由于被除数和除数都扩大了4倍,我们需要先找到扩大后的除数
// 扩大后的被除数 = 4 * (除数 * 7 + 5)
// 扩大后的除数我们设为 x
// 则扩大后的被除数 = 7x + 20
// 根据上面的和,我们有:7x + 20 + x = sum_without_quotient_and_remainder
// 即 8x = sum_without_quotient_and_remainder - 20
// 所以 x = (sum_without_quotient_and_remainder - 20) / 8
int expanded_divisor = (sum_without_quotient_and_remainder - 20) / 8;
// 原来的除数是扩大后的除数除以4
int original_divisor = expanded_divisor / 4;
// 原来的被除数可以用原来的除数来计算
int original_dividend = original_divisor * 7 + 5;
// 输出结果
std::cout << "原来的被除数: " << original_dividend << std::endl;
std::cout << "原来的除数: " << original_divisor << std::endl;
return 0;
}