目录


描述

用 Golang 实现,将四个数进行排列组合。

题目

有 1、2、3、4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

题目解决思路

可填在百位、十位、个位的数字都是 1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

代码具体实现

package main

import "fmt"

func main() {
	totalCount := 0
	/* 三重循环 */
	for i := 1; i < 5; i++ {
		for j := 1; j < 5; j++ {
			for k := 1; k < 5; k++ {
				if i != k && i != j && j != k {
					totalCount++
					fmt.Println("第", totalCount, "方案", "i=", i, "j=", j, "k=", k)
				}
			}
		}
	}

	fmt.Println("共", totalCount, "种方案")
}

输出:

[Running] go run "c:\work\1_src\5_GO_code\go_lianshou\test_shuzipailiezuhe.go"
第 1 方案 i= 1 j= 2 k= 3
第 2 方案 i= 1 j= 2 k= 4
第 3 方案 i= 1 j= 3 k= 2
第 4 方案 i= 1 j= 3 k= 4
第 5 方案 i= 1 j= 4 k= 2
第 6 方案 i= 1 j= 4 k= 3
第 7 方案 i= 2 j= 1 k= 3
第 8 方案 i= 2 j= 1 k= 4
第 9 方案 i= 2 j= 3 k= 1
第 10 方案 i= 2 j= 3 k= 4
第 11 方案 i= 2 j= 4 k= 1
第 12 方案 i= 2 j= 4 k= 3
第 13 方案 i= 3 j= 1 k= 2
第 14 方案 i= 3 j= 1 k= 4
第 15 方案 i= 3 j= 2 k= 1
第 16 方案 i= 3 j= 2 k= 4
第 17 方案 i= 3 j= 4 k= 1
第 18 方案 i= 3 j= 4 k= 2
第 19 方案 i= 4 j= 1 k= 2
第 20 方案 i= 4 j= 1 k= 3
第 21 方案 i= 4 j= 2 k= 1
第 22 方案 i= 4 j= 2 k= 3
第 23 方案 i= 4 j= 3 k= 1
第 24 方案 i= 4 j= 3 k= 2
共 24 种方案

[Done] exited with code=0 in 1.902 seconds