蓝桥杯 加法变乘法的java实现

加法变乘法

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

就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。

分析:这个题目乍看上去有点无从下手的感觉。我们可以假设靠前乘号的左边数字为a, 则右边的数字为a+1,靠后乘号的左边的数字为b,则乘号右边的数字为b+1。

所以算式可改写为:

1+2+3+...+a+(a+1)+(a+2)+...+b+(b+1)+...+49=1225   (1)

1+2+3+...+a*(a+1)+(a+2)+...+b*(b+1)+...+49=2015     (2)

(2)-(1)=a*(a+1)+b*(b+1)-a-(a+1)-b-(b+1)=2015-1225=790

所以原问题变成了在 1-49之间找两对相邻的数字,且它们的乘积之和减去四个数字之和的差为790(楼主语言表达能力有限)。

下面直接上代码:

public class 加法变乘法 {
	
public static void main(String[] args) {
	int a,b,c,d;
	for(int i=1;i<=49;i++) {
		a=i;
		b=i+1;
		for(int j=i+2;j<=49;j++) {
			c=j;
			d=j+1;
			if(a*b+c*d-(a+b)-(c+d)==790&&a!=10) {
				System.out.println(a);
				break;
			}
		}
	}
}
}

猜你喜欢

转载自blog.csdn.net/just16cz/article/details/84198038