题目
我们都知道:1+2+3+..+49=1225
现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015
比如:
1+2+3+...+10*11+12+...+27*28+29+...+49=2015就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交。
(对于示例,就是提交10)。
要求
输出该整数,不要输出任何多余的内容或者说明性的文字。
实现
方法一:枚举
思路:
①:1+2+3+...10+(10+1)+...+27+(27+1)+...+49=1225
②:1+2+3+..10*11+...+27*28+...+49=2015
将上式式子用参数表示:
③:1+2+3+...i+(i+1)+...+j+(j+1)+...+49=1225
④:1+2+3+..i*(i+1)+...+j*(j+1)+...+49=2015
令③④式等于0,则得:
i + ( i + 1 ) + j + ( j + 1 ) - 1225 = 0
i * ( i + 1 ) + j * ( j + 1 ) - 2015 = 0
解以上③④式即可得出结果
java
package lab;
import com.sun.org.apache.xpath.internal.functions.FuncSum;
public class 加号变乘号04 {
static int sum=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
FuncSum();
}
private static void FuncSum() {
//遍历解方程
for (int i = 1; i <= 49; i++) {
// 题目所说,两个不相邻的加号变成乘号,所以j要+2
for (int j = i+2; j <= 49; j++) {
int x = -1225 + i+i+1+j+j+1;
int y = -2015 + j*(j+1)+i*(i+1);
//若方程有解,则输出结果
if (x==y) {
System.out.println(i+" "+j);
}
}
}
}
}
知识点
主要运用了枚举解方程。
本文章来源于我的博客:https://blog.hikki.site
本文是原创文章,采用 CC BY-NC-SA 4.0 协议,完整转载请注明来自 小码同学
评论
隐私政策
0/500
滚动到此处加载评论...

