我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
本题的思路可以将1-49这49个数分成5段计算:即1~i-1,i*(i+1),i+2~j-1,j*(j+1},j+2~49 (i和j为符号位置)
#include "pch.h"
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
for (int i = 1; i < 49; i++)//从1-48中挑出两个不相邻的符号位置i和j
{
for (int j = 1; j < 49; j++)
{
if (abs(i - j) > 1)
{
int a, b;
int sum = 0;
if (i > j)//确保a小于b
{
a = j;
b = i;
}
else
{
a = i;
b = j;
}
for (int m = 1; m < a; m++)
{
sum += m;
}
sum += a * (a + 1);
for (int n = a + 2; n < b; n++)
{
sum += n;
}
sum += b * (b + 1);
for (int o = b + 2; o < 50; o++)
{
sum += o;
}
if (sum == 2015)
{
cout << a << endl;
}
}
}
}
return 0;
}