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