【题目】
加法变乘法
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+10*11+12+…+27*28+29+…+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
【思路】
计算1-49总和(s)遍历计算左边两项相乘减去左边两项相加(left)遍历计算右边两项相乘减去右边两项相加(right)遍历计算最终总数(sum),即上面三项相加(sum = s + left + right)若最终总数为2015输出对应的元素
public class Main {
public static void main(String
[] args
) {
int[] arr
= new int[49];
int s
= 0, left
, right
;
for (int i
= 0; i
< arr
.length
; i
++) {
arr
[i
] = i
+ 1;
s
+= i
+ 1;
}
for (int i
= 0; i
< arr
.length
- 2; i
++) {
left
= arr
[i
] * arr
[i
+ 1] - (arr
[i
] + arr
[i
+ 1]);
for (int j
= i
+ 2; j
< arr
.length
- 1; j
++) {
right
= arr
[j
] * arr
[j
+ 1] - (arr
[j
] + arr
[j
+ 1]);
int sum
= s
+ left
+ right
;
if (sum
== 2015) {
System
.out
.println(arr
[i
]);
}
}
}
}
}
【答案】
16