美文网首页
Swift基础习题练习

Swift基础习题练习

作者: fangcaiwen | 来源:发表于2020-09-15 15:50 被阅读0次
    1.编写一个程序,要求可以把一个字符串中的每一个字符,如果是大写字母变小写字母,如果是小写字母变大写,如果是其他字符不变!

    例如: 字符串AaBsS4563SSd 经过程序转换为 "aAbSs4563ssD"

    // 字符 大写转小写,小写转大写
    func changeCharacter(singCha:Character)->Character{
        
        // 将字符转化为字符串
        let singSring  = String(singCha)
        
        // 用于接收字符串整数值的变量
        var num:UInt32 = 0
        
        for item in singSring.unicodeScalars{
            num = item.value // 循环只执行一次,获取字符的整数值
        }
        // 如果是大写字符,转换小写
        if num >= 65 && num <= 90 {
            num += 32
        }else if num >= 97 && num <= 122{ // 如果是小写字符,转化大写
            num -= 32
        }
        return Character(UnicodeScalar(num)!)
    }
    changeCharacter(singCha: "a") // "A"
    changeCharacter(singCha: "B") // "b"
    changeCharacter(singCha: "1") // "1"
    
    
    
    // 字符串大写转小写,小写转大写
    func changeStringLU(src:String) -> String {
        var relStr = ""
        for item in 0..<src.count{
            relStr += String(changeCharacter(singCha: src[src.index(src.startIndex,offsetBy: item)]))
        }
        return relStr
    }
    changeStringLU(src:"AaBsS4563SSd") // "aAbSs4563ssD"
    
    
    2.编写一个程序,要求接收一个数字,程序会将这个数字以二进制方式打印,例如:数字10 , 以1010的方式打印出来
    func intTo2Int(mInt:Int) -> String {
        return String(mInt,radix: 2)
    }
    
    intTo2Int(mInt: 10)  // "1010"
    intTo2Int(mInt: -10) // "-10101"
    
    3.编写一个程序,判断101-200之间有多少个素数,并输出所有素数。
    // 判断一个数是否是素数
    func isPrime(mInt:Int)->Bool {
        if mInt < 3 {
            return mInt > 1
        }
        let mSqrt = Int(sqrt(Double(mInt)))+1
        for index in 2...mSqrt{
            if mInt % index  == 0 {
                return false
            }
        }
        return true
    }
    isPrime(mInt:1) // false
    isPrime(mInt:2) // true
    isPrime(mInt:3) // true
    isPrime(mInt:4) // false
    
    // 输出一定范围内的素数
    func getPrime(startInt:Int,endInt:Int)->[Int] {
        let mMin = min(startInt,endInt)
        let mMax = max(startInt,endInt)
        var relArray = [Int]()
        for index in mMin...mMax{
            if isPrime(mInt: index){
                relArray.append(index)
            }
        }
        print(relArray)
        return relArray
    }
    getPrime(startInt: 0, endInt:100)
    // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
    
    getPrime(startInt: 100, endInt:0)
    // [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
    
    getPrime(startInt: 101, endInt:200)
    // [101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
    
    
    4.编写一个程序,查看1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
    func getThreeNum(numArray:Array<Int>)->Array<Int>{
        var relArray = Array<Int>()
        for hund in numArray {
            for mTen in numArray {
                for num in numArray {
                    if hund != mTen && hund != num && mTen != num {
                        relArray.append(hund*100+mTen*10+num)
                    }
                }
            }
        }
        print(relArray)
        return relArray
    }
    getThreeNum(numArray:[1,2,3,4])
    // [123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]
    
    5.编写一个程序,能交换两个变量的数值

    例如: 变量a值为20,变量b值为30,调用函数后,a的值变为30,b的值变为20

    func numerChange(numOne:Int,numTwo:Int){
        let (numOne,numTwo) = (numTwo,numOne)
        print(numOne,numTwo)
    }
    
    numerChange(numOne: 20,numTwo: 30)
    // 30 20
    

    相关文章

      网友评论

          本文标题:Swift基础习题练习

          本文链接:https://www.haomeiwen.com/subject/mrsfyktx.html