描述
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
思路
其实要变的就两个符号,其他是不变的,观察结果,可以用上面的两个公式相减可得。设可能的两个位置为i和j。
i*(i+1)+j*(j+1)-(i+i+1)-(j+j+1)=790.
答案:16
代码
#include<cstdio>
using namespace std;
int main()
{
for(int i=1;i<=47;i++)
{
for(int j=i+2;j<=49;j++)
{
//if(i*(i+1)+j*(j+1)-(2*i+1)-(2*j+1)==790)
if(i*i-i-1+j*j-j-1==790)
{
//if(i!=10)
printf("i=%d j=%d\n",i,j);
}
}
}
return 0;
}