加法变乘法
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1
+
2
+
3
+
.
.
.
+
10
∗
11
+
12
+
.
.
.
+
27
∗
28
+
29
+
.
.
.
+
49
=
2015
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
1+2+3+...+10∗11+12+...+27∗28+29+...+49=2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
解题思路:从题中可以知道,变换后结果相差790,只需求出变换乘号的四个数他们相乘与相加之差等于790即可
#include<iostream>
using namespace std;
int main()
{
int a[50];
int i, j;
for (i = 1; i < 50; i++)
a[i - 1] = i;
for(i=1;i<20;i++)
for (j = 20; j < 50; j++)
{
int sum = a[i] * a[i + 1] + a[j] * a[j + 1] - (a[i] + a[i + 1] + a[j] + a[j + 1]);
if (sum > 790)break;
if (sum == 790)
{
cout << i + 1 << endl;
cout << j + 1<<endl;
}
}
}
即16为答案