加法变乘法(2015第六届蓝桥杯B组6)

我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
 
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
 
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
 
注意:需要你提交的是一个整数,不要填写任何多余的内容。

可以暴力枚举

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 const int n=50;
 6 int main(){
 7     int sum=0;
 8     for(int i=1;i<n;i++){
 9         sum+=i;
10     }
11     const int sumn=sum;
12     int sum1,sum2;
13     for(int i=1;i<n-3;i++){
14         sum1=i*(i+1);
15         for(int j=i+2;j<n-1;j++){
16             sum2=j*(j+1);
17             int t=i+(i+1)+j+(j+1);
18             sum=sumn-t+sum1+sum2;
19             if(sum==2015){
20                 cout<<i<<" "<<j<<endl;
21             }
22         }
23     }
24     return 0;
25 }

两组分别是,答案是16

10 27
16 24

 
 

猜你喜欢

转载自www.cnblogs.com/NoWhiteBut/p/12800592.html