黑马程序员技术交流社区

标题: 被人问这个问傻了 [打印本页]

作者: 王雷    时间: 2012-9-25 23:51
标题: 被人问这个问傻了
本帖最后由 屈俊材 于 2012-9-26 07:59 编辑
  1. 1-19的整数和为20如:
  2.     1+19=20
  3.       1+2+17=20
  4.       1+2+3+14=20
  5.       1+2+3+4+10=20
  6.       2+18=20
  7.       2+3+15=20
  8.       2+3+4+11=20
  9.       2+3+4+5+6=20
  10.        3+17=20
  11.        3+4+13=20
  12.         3+4+5+8=30
  13.         4+16=20
  14.         4+5+11=20
  15.         5+15=20
  16.         5+6+9=20  
  17.          6+14=20
  18. 注:每个加数不能重复比如(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 编辑
  1. public class Jafafenjie {

  2.         public static void main(String[] args) {
  3.                 int res[] = new int[10];
  4.                 f1(20, 20, 1, res, 0);
  5.         }

  6.         public static void f1(int N, int sum, int cur, int res[], int depth) {
  7.                 if (sum <= 0) {
  8.                         if (sum == 0) {
  9.                                 for (int i = 0; i < depth; i++) {
  10.                                         System.out.print("+"+res[i]);
  11.                                 }
  12.                                 System.out.print("=20");
  13.                                 System.out.println();
  14.                         }
  15.                 } else {
  16.                         if (cur < N) {
  17.                                 res[depth] = cur;
  18.                                 f1(N, sum - cur, cur + 1, res, depth + 1);
  19.                                 f1(N, sum, cur + 1, res, depth);
  20.                         }
  21.                 }
  22.         }

  23. }
复制代码
在网上看了一个C语言做的 我给改成java了希望能给楼主帮助啊……呵呵

QQ截图20120926012020.jpg (60 KB, 下载次数: 9)

QQ截图20120926012020.jpg

作者: 王雷    时间: 2012-9-26 08:48
问题已解决




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2