当前位置: 代码迷 >> 综合 >> 第六届蓝桥杯【省赛试题6】加法变乘法
  详细解决方案

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

热度:24   发布时间:2023-10-09 16:32:26.0

题目描述:

我们都知道: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;
}

  相关解决方案