加法变乘法(蓝桥杯)

来源:互联网 发布:金盾网络验证 编辑:程序博客网 时间:2024/05/17 23:30

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

思路:我们设被改动的符号前面的两个数分别为i,j;
           (1)1+2+3+... + 49 = 1225
           (2)1+2+3+...+10*11+12+...+27*28+29+...+49 =2015
(2)式减(1)i*(i+1)+(j+1)*j-i-(i+1)-j-(j+1)=2015-1225
遍历即可
#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=48;i++)
for(j=i+2;j<=48;j++)
{
if(i*(i+1)+j*(j+1)-2*i-2*j-2==(2015-1225))
   {
    if(i>j)
    printf("%d\n",j);
    else
    printf("%d\n",i);
}
}
return 0;
}

0 0