蓝桥杯第六届F题:加法变乘法

描述

我们都知道: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;
}
发布了39 篇原创文章 · 获赞 1 · 访问量 552

猜你喜欢

转载自blog.csdn.net/qq_45249273/article/details/104596567