蓝桥杯比赛题--加法变乘法的c语言实现

题目描述
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交。
(对于示例,就是提交10)。
输出
注意:需要你提交的是一个整数,不要填写任何多余的内容。

这里其实可以用一种简单的数学知识,用两式相减。因为只有两个乘号的地方和上式不一样,所以相减可得:
i*(I+i)-(i+(i+1))+j*(j+1)-(j+(j+1)) == 2015-1225
再用代码表示出来:

#include<stdio.h>
int main()
{
	int i,j,jec;
	for(i=1;i<50;i++)
	{
		jec = 0;
		for(j=i+2;j<50;j++) // 为了不是相邻两个数,所以+2 
		{
			if(i*(i+1)-i-(i+1)+j*(j+1)-j-(j+1) == 790) //790就是2015-1225 
			{
				if(i!=10)
				{
					jec = 1;
					break;
				}
			}
		}
		if(jec == 1)
		   break;
    }
    printf("%d\n",i);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_46293423/article/details/104506673