问题描述
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
解题方案
代码
#include <iostream>
using namespace std;
int main() {
for (int i = 2; i <= 49; ++i) {
for (int j = i + 1; j <= 49; ++j) {
int all[47];
int index = 0;
for (int k = 1; k <= 49; ++k) {
if (k == j || k == i) {
all[index - 1] *= k;
} else {
all[index++] = k;
}
}
int sum = 0;
for (int k = 0; k < index; ++k) {
sum += all[k];
}
if (sum == 2015) {
cout << "i=" << i - 1 << " j=" << j - 1 << endl;
}
}
}
return 0;
}
输出
i=10 j=27
i=16 j=24
结论
答案为16