java 循环嵌套问题 10

我现在有如下需求0到10十个数,求任意两个数或者三个数或者4个数(这个不确定到底是几个数),最终相加等于10。例如两个数相加等于10for(inti=0;i<1=10;i... 我现在有如下需求
0到10 十个数,求任意两个数或者三个数或者4个数(这个不确定到底是几个数),最终相加等于10。
例如两个数相加等于10
for(int i=0;i<1=10;i++){
for(int j=0;j<=10;j++){
if((i+j)==10){
System.out.println("i="+i+' j='+j);
}
}
}
求三个数相加等于10 就是嵌套三层循环,那不确定的个数组合怎么写呢?求大神帮忙
展开
 我来答
e世同人
2018-04-03 · TA获得超过830个赞
知道小有建树答主
回答量:229
采纳率:87%
帮助的人:90.1万
展开全部

先挑毛病:

1.0~10是11个数,

2.0+0+...+0+10算不算?

我只能拿1-10说了。

这个用递归做显然比较容易。

class Spliter{
    static int[] divider=new int[10];
    public static void main(String[] args){
        split(10, 0);
    }
    static int split(int n, int step){
        for(int i=1; i<n-1; i++){
            divider[step]=i;
            split(n-i,step+1);
        }
        divider[step]=n-1;
        divider[step+1]=1;
        for(int i=0;i<=step;i++){
            System.out.print(divider[i]+"+");
        }
        System.out.println(divider[step+1]);
    }
}
百度网友9c57ed1
2018-04-03 · TA获得超过120个赞
知道答主
回答量:95
采纳率:89%
帮助的人:23.5万
展开全部
	for (int a = 0; a < 11; a++) {
  for (int b = 0; b < 11; b++) {
for (int c = 0; c < 11; c++) {
  for (int d = 0; d < 11; d++) {
if (a + b + c + d == 10) {
  System.out.println("a=" + a + ";b=" + b + ";c=" + c + ";d=" + d);
}
  }
  if (a + b + c == 10) {
System.out.println("a=" + a + ";b=" + b + ";c=" + c);
  }
}
if (a + b == 10) {
  System.out.println("a=" + a + ";b=" + b);
}
  }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
x盗梦空间x
2018-04-03 · 超过76用户采纳过TA的回答
知道答主
回答量:150
采纳率:85%
帮助的人:53.6万
展开全部
从0-10是11个数
对于不确定个数相加,如果不包含0的话,那最多也就10个1相加
暴力枚举总是有一些笨拙的,想要写一个通用的算法不太容易,可能会用到算法,本人目前大四,对算法了解不多
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
思考342
2018-04-03 · TA获得超过456个赞
知道小有建树答主
回答量:888
采纳率:81%
帮助的人:202万
展开全部
你应该用随机数而不是用循环嵌套的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式