蓝桥杯-加法变乘法(java)

蓝桥杯第六届省赛题目-加法变乘法(java)

题目:

我们都知道:1+2+3+ ... + 49 = 1225

现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015

比如:

1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015

就是符合要求的答案。

请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。

注意:需要你提交的是一个整数,不要填写任何多余的内容。

我的思路:如案例:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015

我们这样拆分 10*11 = 10+10*10     27*28 = 27+27*27

转化为:1+2+3+...+9+10+10*10+ 12+...+26+27+ 27*27+29+...+49 = 2015

两边同时加上11+28

1+2+3+...+9+10+10*10+11+ 12+...+26+27+ 27*27+28+29+...+49 = 2015+11+28

转化为:  1225+ 10*10+27*27 = 2015+11+28= 2017+10+27

根据这个思路:使用两层循环i,j分别代表乘号的位置得到判断条件

1225+ i*i +  j*j  ==  2017+i+j

public class Demo6 {
public static void main(String[] args) {
for (int i = 1; i < 49; i++) {for (int j = i + 2; j < 48; j++) {
if (1225 + i * i + j * j == 2017 + i + j) {
System.out.println(i);
}
}
}
}
}

执行结果:10  16

答案:16

错误或不足的地方欢迎指正!!

最后分享一个喜欢的句子:
物是人非的时候,回忆就会显示它可爱而又残忍的一面。虽然生活中的事一件接着一件,欢畅的,莫名的,卑劣的,让人应接不暇,但是记忆总是会自动筛选出某些事,供我在日后抚摩把玩,这些事,被叫做典故。
上一篇:【一天一道LeetCode】 #3 Longest Substring Without Repeating Characters


下一篇:Sqrt(x)——LeetCode