2015蓝桥杯b组c/c++ 第六题,加法变乘法

加法变乘法
我们都知道:1+2+3+... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 =2015
就是符合要求的答案。

请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。

思路:这道题找到技巧之后很简单,但是如果想不到可能就很无从下手了。(注意题目中提到只能变换两个加号)

         首先,我们观察加法变换到乘法的等式差距在哪,假设第一个乘号前的值为 i ,第二个为 j ,那么加法式去掉 i,          i+1 , j , j+1,之后再加上 i *(i+1)+j*(j+1)就是乘法式了

代码:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,j;
for(i=1;i<=49;i++)
{
for(j=i+2;j<=49;j++)
{
if(1225-i-i-1+i*(i+1)-j-j-1+j*(j+1)==2015)
{
cout<<i<<" "<<j<<endl;
}
}
}
return 0;
}

猜你喜欢

转载自blog.csdn.net/zhangmengwen/article/details/79749250