加法变乘法
我们都知道: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;
}
}
}
}
}