加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
根据题意我们可以了解到 当我们的计算式中的某些运算符号由加法改变成乘法时我们了解到
这个差是相同的。(就是说除去我们改变的i,i+1,j,j+1,其他的45个数的和是不变的) 首先我们利用循环通过j=i+2来控制我们的i和j是不相邻的两个数。
例入我们开始时的
1225 减去i+(i+1)+j+(j+1)得到的数
与 改变成乘法算式的
2015 减去i*(i+1)+j*(j+1)是相等的
源码如下:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum1,sum2;
for (int i = 1; i <= 49; i++) {
for (int j = i+2; j <= 49; j++) {
sum1 = 1225- (i+(i+1)+j+(j+1));
sum2 = 2015- (i*(i+1)+j*(j+1));
if (sum2==sum1) {//判断两差是否相等
if(i!=10)//除去题目中给出的一种可能
System.out.println(i);
}
}
}
}
}