题目描述
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交。
(对于示例,就是提交10)。
输出
注意:需要你提交的是一个整数,不要填写任何多余的内容。
这一题我们对这个等式进行变形就可以了
1225 = 1 + 2 + 3 + ···+ i - 1 + (i) +( i + 1) + ···+ j - 1 +( j ) +( j + 1 )+ ···+49;
2015 = 1 + 2 + 3 + ···+ i - 1 + (i) *( i + 1) + ···+ j - 1 + ( j ) * ( j + 1) + ···+49
两个等式联合起来就得到了
2015 - 1225 = (i) *( i + 1) + ( j ) * ( j + 1) - (i) +( i + 1) - ( j ) +( j + 1 )
下面是代码
#include <iostream>
using namespace std;
int main(){
int i, j;
for (i = 1; i <= 46; i ++ )
for (j = i + 2; j <= 48; j ++ ){
int x = 2015 - i * (i + 1) - j * (j + 1);
int y = 1225 - (i + i + 1) - (j + j + 1);
if (x == y) cout << i << " " << j << endl;
}
return 0;
}