试题描述:
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
试题分析:
可以将加号变成乘号后两数相乘减去两数相加,得到的对应差值来辅助计算。同时i<j,代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
for(int i=1;i<=46;i++){
for(int j=1;j<=48;j++){
if(i*(i+1)-(i+i+1)+j*(j+1)-(j+j+1)==2015-1225)
if(i<j)
{
cout<<i<<" "<<j<<endl;
}
}
}
return 0;
}
结果如下:
可得另一个结果为16