题目要求如下:
加法变乘法
我们都知道:1+2+3+ … + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如: 1+2+3+…+1011+12+…+2728+29+…+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案, 并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
注意:题目要求是把其中两个不相邻的加号变成乘号,一开始没有注意到两个,认为是随机得选择加号变乘号, 仔细阅读题意
思路:将1到49 分成三个区间 这三个区间都是用加法做处理,三个区间是由两个数字分割的,对待这两个数字,用乘法处理
class Change1028 {
//最开始 理解题目有问题 题目要求是 其中两个不相邻的加号变成乘号
//没有注意两个
public static void main(String[] args) {
// i j 将1——49分成了三段 用 i j来区分
//处理[1,i)和[i+2,j)和[j+2,49]之间数字 用的是加号
// 加上 i*(i+1) 和 j*(j+1) 如果是2015 输出结果即可
for(int i = 1;i<=49;i++) {
for(int j = 49;j>i;j--) {
if(sums(i,j)==2015) {
//要求求的是除10以外的情况
if(i==10)
continue;
System.out.println(i);
}
}
}
}
//
static int sums(int firstNum,int secondNum) {
int sum = 0;
for(int i = 1;i<firstNum;i++) {
sum+=i;
}
sum = sum + firstNum*(firstNum+1);
for(int j = firstNum+2;j<secondNum;j++) {
sum+=j;
}
sum = sum + secondNum*(secondNum+1);
for(int v = secondNum+2;v<=49;v++) {
sum+=v;
}
return sum;
}
}