蓝桥杯第六届省赛题目-加法变乘法(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