思路:
1.从第一个和最后一个数开始添乘号,若和大于2015则最后一个数-1,使和变小;小于则第一个数+1,使和变大。这样使用一个循环就可把题目解出。
2.直接使用两个for循环依次添加乘号,条件满足时输出。
思路一解法:
public class GPNUACM_3438 {
public static void main(String[]args){
int i = 1;//第一个数字
int j = 49;//最后一个数字
int sum = 1225;//和
int sum1 = 1225;
while (i<j){
//把乘号前后的数减去,再加上两个乘积
sum1 = sum - (i + i+1 + j + j-1) + i*(i+1) + j*(j-1);//变成乘法后的和
if(sum1 == 2015 & i != 10){//当和为2015且不为示例时输出
System.out.println(i);
break;
}else if (sum1 > 2015){//和大于2015时j--
j--;
}else {//和小于2015时i++
i++;
}
}
}
}
思路二解法:
public class GPNUACM_3438 {
public static void main(String[]args){
int sum = 1225;
for (int i = 1; i < 50; i++) {
for (int j = i+2; j < 50; j++) {
if (2015 == 1225 - (i + i+1 + j + j+1) + i*(i+1) + j*(j+1)) {
System.out.println(i);
}
}
}