题意:
我们都知道:1+2+3+ … + 49 = 1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+…+10*11+12+…+27*28+29+…+49 = 2015
就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
解题思路:
两个不相邻的加号
限制条件:(j-i)!=2
第一部分:1+2+3+...+i(9)
第二部分:(i+1)*(i+2)
第三部分:i+3+...+j(26)
第四部分:(j+1)*(j+2)
第五部分:j+3+...+49
判断之和是否等于2015
代码:
package com.tjrac_java_2;import java.util.Set;
import java.util.TreeSet;
import java.util.Vector;public class TT { public static void main(String[] args) {int ans=0;for(int i=1;i<=49;i++){//极限 47*48for (int j = i; j<=49 ; j++) {if((j-i)!=2){//不相邻if(check(i,j)==2015){System.out.println("i:"+(i+1)+" j:"+(j+1));}}}}System.out.println(check(9,26));//测试}private static int check(int i, int j) {int s = 0;s=sum(1,i)+(i+1)*(i+2)+sum(i+3,j)+(j+1)*(j+2)+sum(j+3,49);return s;}private static int sum(int l,int r) {return (l+r)*(r-l+1)/2;}
}