给定N个大于0的个位数字,用其中任意3个数字都可以组合成1个三位数。要求所有可能组合出来的三位数之和。怎么打啊救命
给你写好了,先输入n 再依次输入数字:有帮助请点一下我回答右上方的采纳
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int [n];
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
int ans = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
for (int k = 0; k < n; k++) {
if(j != i&&j!=k&&i!=k)
ans += arr[i]*100 + arr[j]*10+arr[k];
}
}
}
System.out.println(ans);
}
}
三层for循环,组合的数字放到数组中,每次放入前遍历一下是否有重复,只有不重复的才加入到数组
思路:
1.输入的数放到一个集合中
2.循环嵌套组合3位数。
Set<Integer> nums = new HashSet<>();
Scanner in = new Scanner(System.in);
String[] abc = new String[3];
int index = 0;
while (index < abc.length){
abc[index++] = in.next();
}
for (int i = 0; i < abc.length; i++){
for (int j = 0; j < abc.length; j++){
if (j != i){
for (int k = 0; k < abc.length; k++){
if (k != j && k != i){
String result = abc[i] + abc[j] + abc[k];
nums.add(Integer.valueOf(result));
}
}
}
}
}
Integer sum = 0;
for (Integer num : nums){
System.out.print(num + " ");
sum += num;
}
System.out.println(" = " + sum);