| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1525 人关注过本帖
标题:★在10以内, 实现不重复相加=10的有几组★
只看楼主 加入收藏
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
结帖率:100%
收藏
 问题点数:0 回复次数:16 
★在10以内, 实现不重复相加=10的有几组★
程序代码:
package haha;

public class Untitled1 {
    public static void main(String[] args) {
        {
            int sum = 0;
            int n = 0;
            for (int i = 1; i <= 10; i++) {
                for (int j = i; j <= 10; j++) {
                    sum = i + j;
                    if (sum == 10) {
                        n++;
                    }
                  
                }

            }
            System.out.println("循环的次数" + n);
        }
    }
}
//我想实现相加=10的有几组



是连续相加的很简单   如果不是连续相加呢  

有9中情况

1+9  1+2+3+4  1+2+7   1+3+6  1+4+5

2+3+5  2+8

3+7   

4+6
5+5


  大家帮我看下!  谢谢了!!!!!!!!

[[it] 本帖最后由 hanzhu3366 于 2008-5-12 20:42 编辑 [/it]]
搜索更多相关主题的帖子: 相加 
2008-05-10 23:23
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
你上面的程序叫单元加..你找看看啊

学习需要安静。。海盗要重新来过。。
2008-05-11 09:03
xiaoyu2006
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2007-12-14
收藏
得分:0 
上面的程序多了一个大括号!
2008-05-11 10:00
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
不是括号问题,第二个for循环有问题!  这个题目看似简单,还真有点小麻烦,希望大家帮我调试下!  

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-05-11 17:52
qsrock
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2005-12-29
收藏
得分:0 
有10种,
1,2,7
1,3,6
1,4,5
2,3,5
1,2,3,4
其他5钟不说了
2008-05-12 09:46
qsrock
Rank: 1
等 级:新手上路
帖 子:255
专家分:0
注 册:2005-12-29
收藏
得分:0 
详细自己看打印,我就不多说了
程序代码:
public class Test {
    static int sum=0;
    static int count=0;
    public static void main(String[] args){
        
        int result=10;//相加后的结果
        
        //因为i=5,j=5在我这里是特殊的,因为他们相等而且相加刚好等于10,所以要特别给count+1,只要result%2==0都要加1
        if(result%2==0){
            count++;
        }
        
        for(int i=1;i<(result/2+1);i++){
            System.out.println("开始 i ="+i);
            for(int j=i+1;j<10;j++){
                System.out.println("开始 j ="+j);
                sum=i;
                sum+=j;
                if(i==1&&j==1){
                    continue;
                }
                if(sum>result){
                    break;
                }
                if(sum<result){
                    if((sum+j+1)<result){//表示三个或更多的数相加小于10
                        add(sum,j+1,result);
                    }else if (sum+j+1==result) {
                        count++;
                        System.out.println("count++:"+count);
                    }else{
                        continue;
                    }
                    System.out.println();
                }
                if(sum==result){
                    count++;
                    System.out.println("i:"+i+" &&& j:"+j+"   count="+count);
                    break;
                }
                
            }
        }
        System.out.println(count);
    }
    /**
     * @param i
     * @param j
     * @param result:相加后的结果
     */
    public static void add(int i,int j,int result){
        
        System.out.println("add中的i="+i);
        int temp=i;
        for(;j<result;j++){
            i=temp;
            i+=j;
            if(i<result){
                int temp1=i,temp2=j+1;
                System.out.println("temp1:"+temp1+" + temp2:"+temp2);
                if(temp1+temp2==result){
                    count++;
                    System.out.println("temp1:"+temp1+" + temp2:"+temp2+"   count="+count);
                }
                else if(temp1+temp2<result){
                    add(temp1, temp2,result);
                }
                
            }else if(i>result){
                break;
            }else if(i==result){
                count++;
                System.out.println("i:"+i+" + j:"+j+"   count="+count);
            }else{
                continue;
            }
        }
    }
}
2008-05-12 12:00
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
回复 6# 的帖子
谢谢你~~

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-05-12 14:41
liun5210
Rank: 1
来 自:湖北省天门市
等 级:新手上路
帖 子:55
专家分:0
注 册:2008-5-12
收藏
得分:0 
6楼的不错!
2008-05-12 15:27
hanzhu3366
Rank: 1
来 自:湖北武汉
等 级:新手上路
帖 子:741
专家分:3
注 册:2007-10-12
收藏
得分:0 
如果数字太大,这个方法就不行了!
程序代码:
package wwwww;

public class Untitled1 {
    public static void main(String[] args) {
        int cnt2 = 10;

        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                if (i < j) {
                    if ((i + j) == cnt2) {
                        System.out.println("两个数相加的有: " + i + "+" + j);
                    }
                }
            }
        }

        for (int k = 1; k < 10; k++) {
            for (int n = 1; n < 10; n++) {
                for (int m = 1; m < 10; m++) {

                    if (k < n) {
                        if (n < m) {
                            if ((k + n + m) == cnt2) {
                                System.out.println("三个数相加的有: " + k + " " + n +
                                        " " + m);
                            }
                        }
                    }
                }
            }
        }

        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                for (int k = 1; k < 10; k++) {
                    for (int m = 1; m < 10; m++) {
                        if (i < j) {
                            if (j < k) {
                                if (k < m) {
                                    if ((i + j + k + m) == cnt2) {
                                        System.out.println("四个数字相加的有: " + i +
                                                " " + j + " " +
                                                k + " " + m);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

    }

}

偶滴淘宝小店,主要经营女装、男装、话费充值哦http://hanzhu3366.taobao. com
2008-05-12 20:35
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
import *;
class demo{
private int k=0;
private int a[]=new int[100];
public  void num(int number)
{
int n1,j,temp=k,i;
for(j = 1 ; j <= number/2 + 1 ; j ++)
{
    if(number-j <= 0)  
        break;
    n1 = number - j;
    a[k ++] = j;
    if(n1 > 1)
        num(n1);
    else
    {
        a[k ++] = 1;
        System.out.println();
        for(i = 0 ; i < k-1 ; i ++)
            System.out.print(a[i]);
        System.out.print(a[k-1]);
    }
    k=temp;
}
System.out.printf("\n");;
for(i = 0 ; i < k ;i ++)
System.out.print(a[i]);
System.out.print(number);
}
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);
    d.num(m);
}catch(Exception e)
{
    System.out.println(e.toString());
    }

}
}

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



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

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