七叶笔记 » golang编程 » Golang数字排列组合

Golang数字排列组合

描述

用 Golang 实现排列组合数字。

题目

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

题目解决思路

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

代码具体实现

 package main

import (

"fmt"

)

func main() {

fmt.Println("嗨客网(www.haicoder.net)")

var nums []uint64

for i := 1; i < 5; i++ {

for j := 1; j < 5; j++ {

for k := 1; k < 5; k++ {

if (i != j) && (i != k) && (j != k) {

nums = append(nums, uint64(i*100+j*10+k))

}

}

}

}

fmt.Println("总共:", len(nums))

fmt.Println(nums)

}  

程序运行后,控制台输出如下:

我们使用了三重 for 循环,分别遍历,并使用 if 判断如果三个数,都不相等,再将结果追加到切片中,最后获取切片的总长度就是总个数。

相关文章