题目:
我们都知道:1+2+3+ ... + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如: 1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
答案:16
分析:
利用两个for循环确定第一个*和第二个*的位置
两个式子中只有4项不一样,分别是i+(i+1) , i*(i+1) , j+(j+1) , j*(j+1) , 考虑其中的关系得出如下结论
i+(i+1)替换成i*(i+1)所产生的差值 + j+(j+1)替换成j*(j+1)所产生的差值 == 2015-1225
代码:
#include<iostream>
using namespace std;
int main(){
for(int i=1;i<=46;i++){//第一个*i的后面
for(int j=i+2;j<=48;j++){//第二个*在j的后面
if(i*(i+1)-(i+i+1)+j*(j+1)-(j+j+1) == 2015-1225){
cout << i <<endl;
}
}
}
return 0;
}