import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); String inputString = sc.nextLine(); String stringArray[] = inputString.split(" "); //将输入数据读入到一个字符数组里去 int n1 = stringArray.length; int num[] = new int[stringArray.length]; // for (int i = 0; i < stringArray.length; i++) { num[i] = Integer.parseInt(stringArray[i]); } int num1[]=new int[n1]; /*int num2[] = new int[n1]; int num3[]=new int[n1];*/ int sum=0; /* int k=0; for(int i=0;i<n1;i++) { if(i!=k){ num1[i]=num[k]*10+num[i]; System.out.println(num1[i]); } } int k1=1; for(int i=0;i<n1;i++) { if(i!=k1){ num2[i]=num[i]+num[k1]*10; System.out.println(num2[i]); } }*/ for(int k=1;k<n1;k++){ for(int i=1;i<n1;i++) { if(i!=k){ num1[i]=num[i]+num[k]*10; sum=sum+num1[i]; } } } System.out.println(sum); } }
提交结果:
解题思路是:
首先读入数据放到一个字符数组里,再讲字符数组转换成int型数组。
3 2 5 8 表示为:3为三个数组,所以在后面计算的时候数组下标要从1开始,25=2*10+5,28=2*10+8;其他的同理。但是要注意当52,58的时候,52=5*10+num[1];58=5*10+num[3];调过了num下标2,所以需要用首先判断10前面的系数所在的下标,并在后面组合两位数的时候调过该下标。