一、题目
加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
————————————————
二、代码
package Lan2015;
public class five加法变乘法 {
/*加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。*/
public static void main(String[] args) {
//暴力:用两层for循环,外层循环控制第一个数,内层循环遍历找第二个数,
//定义一个数的值为1225,从这个数里减去两个数的和 再加上两个数的积,最终等于2015
for (int i = 0; i < 48; i++) {
for (int j = i+1; j < 48; j++) {
int sum = 1225;
sum -= (i+1) + i +(j+1) + j;
sum += (i+1) * i +(j+1) * j;
if(sum == 2015) {
System.out.println(i + " " + j);
}
}
}
}
}
三、反思
注意:内层循环的初始条件是j+1,就是为了避免重复的结果出现,(就是i往后遍历的同时,j又从0开始遍历,效率不高)
输出:
10 27
16 24