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 就是嵌套三层循环,那不确定的个数组合怎么写呢?求大神帮忙 展开
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 就是嵌套三层循环,那不确定的个数组合怎么写呢?求大神帮忙 展开
4个回答
展开全部
先挑毛病:
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]);
}
}
展开全部
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);
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
从0-10是11个数
对于不确定个数相加,如果不包含0的话,那最多也就10个1相加
暴力枚举总是有一些笨拙的,想要写一个通用的算法不太容易,可能会用到算法,本人目前大四,对算法了解不多
对于不确定个数相加,如果不包含0的话,那最多也就10个1相加
暴力枚举总是有一些笨拙的,想要写一个通用的算法不太容易,可能会用到算法,本人目前大四,对算法了解不多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你应该用随机数而不是用循环嵌套的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询