1.編寫一個程序,要求可以把一個字符串中的每一個字符苦始,如果是大寫字母變小寫字母,如果是小寫字母變大寫,如果是其他字符不變!
例如: 字符串AaBsS4563SSd 經(jīng)過程序轉(zhuǎn)換為 "aAbSs4563ssD"
// 字符 大寫轉(zhuǎn)小寫待侵,小寫轉(zhuǎn)大寫
func changeCharacter(singCha:Character)->Character{
// 將字符轉(zhuǎn)化為字符串
let singSring = String(singCha)
// 用于接收字符串整數(shù)值的變量
var num:UInt32 = 0
for item in singSring.unicodeScalars{
num = item.value // 循環(huán)只執(zhí)行一次,獲取字符的整數(shù)值
}
// 如果是大寫字符姨裸,轉(zhuǎn)換小寫
if num >= 65 && num <= 90 {
num += 32
}else if num >= 97 && num <= 122{ // 如果是小寫字符秧倾,轉(zhuǎn)化大寫
num -= 32
}
return Character(UnicodeScalar(num)!)
}
changeCharacter(singCha: "a") // "A"
changeCharacter(singCha: "B") // "b"
changeCharacter(singCha: "1") // "1"
// 字符串大寫轉(zhuǎn)小寫,小寫轉(zhuǎn)大寫
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.編寫一個程序傀缩,要求接收一個數(shù)字那先,程序會將這個數(shù)字以二進(jìn)制方式打印,例如:數(shù)字10 赡艰, 以1010的方式打印出來
func intTo2Int(mInt:Int) -> String {
return String(mInt,radix: 2)
}
intTo2Int(mInt: 10) // "1010"
intTo2Int(mInt: -10) // "-10101"
3.編寫一個程序售淡,判斷101-200之間有多少個素數(shù),并輸出所有素數(shù)慷垮。
// 判斷一個數(shù)是否是素數(shù)
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
// 輸出一定范圍內(nèi)的素數(shù)
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四個數(shù)字,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)芹血?都是多少贮泞?
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.編寫一個程序楞慈,能交換兩個變量的數(shù)值
例如: 變量a值為20,變量b值為30啃擦,調(diào)用函數(shù)后抖部,a的值變?yōu)?0,b的值變?yōu)?0
func numerChange(numOne:Int,numTwo:Int){
let (numOne,numTwo) = (numTwo,numOne)
print(numOne,numTwo)
}
numerChange(numOne: 20,numTwo: 30)
// 30 20