java算法请输入一个数组(1,2,3,5,7,11,13,17,19,23,29,31)12个元
java算法请输入一个数组(1,2,3,5,7,11,13,17,19,23,29,31)12个元素,取出4个元素的所有组合(算出有多少组合),值为40至47,并且组合不...
java算法请输入一个数组(1,2,3,5,7,11,13,17,19,23,29,31)12个元素,取出4个元素的所有组合(算出有多少组合),值为40至47,并且组合不能重复,请用java编程。我是记事本
展开
4个回答
展开全部
@Test
public void name() {
int[] arr = { 1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 };
int sum = 0;
int count = 0;
//循环变量这样设置就不要考虑重复问题了。
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
for (int k = j + 1; k < arr.length; k++) {
for (int m = k + 1; m < arr.length; m++) {
sum = arr[i] + arr[j] + arr[k] + arr[m];
if (40 <= sum && sum <= 47) {
count++;
System.out.println(arr[i] + "," + arr[j] + ","
+ arr[k] + "," + arr[m] + "=" + sum);
} else if (sum > 47) {
//如果值大于47就不用循环了,后面的值一定大于47,所以就跳到外层循环
break;
}
}
}
}
}
System.out.println(count);
}
展开全部
4个for循环套一起,每一次去重,最后一层算和
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么老是有这种问题啊!不知道不会啊!
更多追问追答
追问
嘻嘻
大神是我弱智
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以给个例子么?比如:输入什么;输出什么
更多追问追答
追问
输出
4个元素所有组合
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询