第六届蓝桥杯【省赛试题6】加法变乘法

时间:2022-09-10 14:21:17

题目描述:

我们都知道:1+2+3+ ... + 49 = 1225 

现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015  

比如: 

1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符合要求的答案。  

请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。

题目答案:

16

题目思路:

题目要求改两个+为*,(不相邻的+) ,那么如果第i个+改变,最近的能改变的第j个+ 位置为 j=i+2。题目数据范围是1-49,所以使用暴力方法,循环遍历所有情况输出符合题目要求的情况即可。已知1到49的和为1225,改变符号后,只需要减去数字的和,再加上数字的积即可。这里给出代码进行参考:

题目代码:

#include<iostream>
using namespace std;
int main(){
for(int i=1 ;i<=49 ;i++){
for(int j=i+2 ;j<=48 ;j++){
int sum = 1225-i-i-1-j-j-1+i*(i+1)+j*(j+1);
if(sum==2015)
cout<<i<<endl;
}
}
return 0;
}