zoukankan      html  css  js  c++  java
  • 使用golang求出A-Z的所有子集

    参考链接:https://blog.csdn.net/K346K346/article/details/80436430

    有一个集合由A-Z这26个字母组成,打印这个集合的所有子集,每个子集一行,写C代码实现,不能使用递归

    假设只有三个字母ABC,那么子集有:

    {}
    A
    B
    C
    AB
    AC
    BC
    ABC

    把ABC看作三个比特位,分别为:

    000
    100
    010
    001
    110
    101
    011
    111

    具体代码:

    这里需要注意一点的就是,golang使用位运算的时候,使用的基础数据类型是uint

    package main
    
    import (
        "fmt"
    )
    
    //输出所有的子集
    //n是要输出的前几个字母
    func CaptitalLetter(n uint) {
        letter := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
            "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
    
        //这里为什么是2^n呢
        //详情看:
        //https://blog.csdn.net/K346K346/article/details/80436430
        var maxCount uint = 1 << n
        var i uint
        var j uint
        for i = 0; i < maxCount; i++ {
            for j = 0; j < n; j++ {
                if (i & (1 << j)) != 0 { //在做位运算的时候需要注意数据类型为uint
                    fmt.Printf("%s", letter[j])
                }
            }
            fmt.Println()
        }
    }
    
    func main() {
        CaptitalLetter(5)
    }
    还在找我的道
  • 相关阅读:
    如何将你的AIR程序正常显示在iPhone5上?
    升级Flash Builder 4.7中的AIR SDK
    Flex AIR加载时全屏显示
    在Mac系统的安装Flash Builder 4.7开发工具
    What's XPath?
    XPath节点
    What's XML?
    65个源码下载网站
    [导入]轻松掌握Ajax.net系列教程
    MemberShip 示例
  • 原文地址:https://www.cnblogs.com/TimLiuDream/p/9912119.html
Copyright © 2011-2022 走看看