| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1525 人关注过本帖
标题:★在10以内, 实现不重复相加=10的有几组★
只看楼主 加入收藏
zhoukai
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-4-11
收藏
得分:0 
一点小的回答!
我想到的也是最后这个办法,不过这个方法近似于穷举,要知道所有的情况才能这样做,不知道所有的情况就没办法了。
2008-05-12 21:55
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
回复 10# 的帖子
运行时候结果为空!    么原因啊?

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-05-12 23:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我做做的是单元加程序..你要自己输入的数据..然后对你的数据进行分解...

学习需要安静。。海盗要重新来过。。
2008-05-13 09:45
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
用数组方法!
程序代码:
package wwwww;

public class Untitled1 {
    static int sum = 0;
    static int count = 0;
    public static void main(String[] args) {
        final int result = 10;
        int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        for (int i = 0; i < a.length; i++) {
            for (int j = 1; j < a.length; j++) {
                if ((a[i] + a[j]) == result) {
                    if (a[i] != a[j]) {
                        if (a[i] < a[j]) {
                            System.out.println("result=" + a[i] + "+" + a[j]);
                        }
                    }
                }
                for (int m = 2; m < a.length; m++) {
                    if ((a[i] + a[j] + a[m]) == result) {
                        if (a[i] < a[j]) {
                            if (a[j] < a[m]) {
                                if (a[i] != a[j]) {
                                    if (a[i] != a[m]) {
                                        if (a[j] != a[m]) {
                                            System.out.println("result=" + a[i] +
                                                    "+" +
                                                    a[j] + "+" +
                                                    a[m]);
                                        }
                                    }
                                }
                            }
                        }
                    }
                    for (int n = 3; n < a.length; n++) {
                        if ((a[i] + a[j] + a[m] + a[n]) == result) {
                            System.out.println("result=" + a[i] +
                                               "+" + a[j] +
                                               "+" + a[m] +
                                               "+" + a[n]);
                        }

                    }
                }
            }

        }
    }
}

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-05-13 11:00
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
建议你用递归做...背包法..从九开始找..直到指针下降到1

学习需要安静。。海盗要重新来过。。
2008-05-13 11:05
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
import *;
class demo{
private int a[]={0,1,2,3,4,5,6,7,8,9};
public  boolean knap(int s,int n)
{
   if(s<0||(s>0&&n<1))
   return false;
   if(s==0)
   return true;
   if(knap(s-a[n],n))
   {  
     System.out.print(a[n]);
     return true;
       }
       
     knap(s-a[n],n-1);
    return knap(s,n-1);   
}

public static void main(String []arg)
{
int m;
InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader br=new BufferedReader(isr);
String s;
demo d=new demo();
try{
    s=br.readLine();
    m=Integer.parseInt(s);
  for(int i=9;i>=0;i--)
    {
        if(d.knap(m,i))
        System.out.println();
        }
}catch(Exception e)
{
    System.out.println(e.toString());
    }

}
}

[[it] 本帖最后由 sunkaidong 于 2008-5-13 12:43 编辑 [/it]]

学习需要安静。。海盗要重新来过。。
2008-05-13 11:55
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你改该就可以了

学习需要安静。。海盗要重新来过。。
2008-05-13 11:55
快速回复:★在10以内, 实现不重复相加=10的有几组★
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029613 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved