题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。我想从键盘任意输入1-9的数字以逗号分割,然后达到以上结果,我该怎么处理,在线等========import java.util.Scanner;public class Rank1 {
public static void main(String[]args){
/*Scanner in = new Scanner(System.in);
System.out.println("请输入一行1-9的数字,以逗号分割,以回车结束!");
String s = in.nextLine();
int arr[] = {Integer.parseInt(s)};
*/
int arr[] = {1,2,3,4};
int i,j,k,temp=0;
int count = 0;
for(i = 0;i < arr.length;i++){
int bai = 100*arr[i];
for(j = 0;j<arr.length;j++){
int shi = 10*arr[j];
for(k = 0;k<arr.length;k++){
int ge = arr[k];
temp = bai+shi+ge;
count++;
if(count%8 == 0){
System.out.print(temp+" ");
System.out.println();
}else{
System.out.print(temp+" ");
}
}
}
}
System.out.println();
System.out.println("一个可以组成"+count+"个三位数!");
}
}
1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。我想从键盘任意输入1-9的数字以逗号分割,然后达到以上结果,我该怎么处理,在线等========import java.util.Scanner;public class Rank1 {
public static void main(String[]args){
/*Scanner in = new Scanner(System.in);
System.out.println("请输入一行1-9的数字,以逗号分割,以回车结束!");
String s = in.nextLine();
int arr[] = {Integer.parseInt(s)};
*/
int arr[] = {1,2,3,4};
int i,j,k,temp=0;
int count = 0;
for(i = 0;i < arr.length;i++){
int bai = 100*arr[i];
for(j = 0;j<arr.length;j++){
int shi = 10*arr[j];
for(k = 0;k<arr.length;k++){
int ge = arr[k];
temp = bai+shi+ge;
count++;
if(count%8 == 0){
System.out.print(temp+" ");
System.out.println();
}else{
System.out.print(temp+" ");
}
}
}
}
System.out.println();
System.out.println("一个可以组成"+count+"个三位数!");
}
}
private char[] rank;
private boolean[] vist;
private char[] c;
private int size;
private long kind;
public Rank(char[] c,int size){
rank = new char[size];
vist = new boolean[c.length];
this.c = c;
this.size = size;
kind = 0;
}
public void showAllRank() {
kind = 0;
for (int i = 0; i < c.length; i++) {
vist[i] = false;
}
dfs(0);
System.out.println("kind:"+kind);
}
public void dfs(int level) {
if (level == size) {
for (int i = 0; i < size; i++) {
System.out.print(rank[i]);
}
System.out.println();
kind++;
} else {
for (int i = 0; i < c.length; i++) {
if ( !vist[i]) {
vist[i] = true;
rank[level] = c[i];
dfs(level+1);
vist[i] = false; //回溯
}
}
}
}
}import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
char[] c = {'2','3','5','7'};
Rank rank = new Rank(c,3);
rank.showAllRank(); }
}
arg2是排列出的字符串多长(在你的需求里面就是几位数)
int sum=0;
for(int i=0;i<nums.length;i++){
int a=nums[i]>0?nums[i]:nums[i<nums.length-1?i+1:-1];
for(int k : nums){
if(k!=a){
for(int c:nums){
if(c!=a&&c!=k){
System.out.println(a+""+k+""+c);
sum+=1;
}
}
}
}
}
System.out.println(sum);