黑马程序员技术交流社区
标题:
被人问这个问傻了
[打印本页]
作者:
王雷
时间:
2012-9-25 23:51
标题:
被人问这个问傻了
本帖最后由 屈俊材 于 2012-9-26 07:59 编辑
1-19的整数和为20如:
1+19=20
1+2+17=20
1+2+3+14=20
1+2+3+4+10=20
2+18=20
2+3+15=20
2+3+4+11=20
2+3+4+5+6=20
3+17=20
3+4+13=20
3+4+5+8=30
4+16=20
4+5+11=20
5+15=20
5+6+9=20
6+14=20
注:每个加数不能重复比如(4+5+5+6=20 5和5重复不可以。1+19和19+1也不可以2+18和18+2等等)
复制代码
作者:
郭阳
时间:
2012-9-26 00:10
你是想问什么?一共有多少个这样的组合?
作者:
燃烧端午
时间:
2012-9-26 01:17
本帖最后由 燃烧端午 于 2012-9-26 01:21 编辑
public class Jafafenjie {
public static void main(String[] args) {
int res[] = new int[10];
f1(20, 20, 1, res, 0);
}
public static void f1(int N, int sum, int cur, int res[], int depth) {
if (sum <= 0) {
if (sum == 0) {
for (int i = 0; i < depth; i++) {
System.out.print("+"+res[i]);
}
System.out.print("=20");
System.out.println();
}
} else {
if (cur < N) {
res[depth] = cur;
f1(N, sum - cur, cur + 1, res, depth + 1);
f1(N, sum, cur + 1, res, depth);
}
}
}
}
复制代码
在网上看了一个C语言做的 我给改成java了希望能给楼主帮助啊……呵呵
QQ截图20120926012020.jpg
(60 KB, 下载次数: 9)
下载附件
2012-9-26 01:20 上传
作者:
王雷
时间:
2012-9-26 08:48
问题已解决
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2