Swift 演算法練習

2021-08-09 20:06:15 字數 2209 閱讀 9187

編寫乙個程式,能交換兩個變數的數值

例如: 變數a值為20,變數b值為30,呼叫函式後,a的值變為30,b 的值變為20

答案:   -func swap(a: inout int , b:inout int)

var x = 20 , y = 30

swap(a:&x , b:&y)

print(x,y)

編寫乙個程式,求1! + 2! + 3! + 4!的和

要求:使用巢狀定義函式實現

答案: func getsum(number: int) -> int 

return

sum }

var total = 0

foritem

in1...number

return total

}print(getsum(number: 3))

古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

答案:func getfinbonum(num: int) ->int

return (getfinbonum(num: num - 1) + getfinbonum(num: num - 2))

}for month in

1...10

列印出所有的「水仙花數」,所謂「水仙花數」是指乙個三位數,其各位數字立方和等於該數本身。例如:153是乙個「水仙花數」,因為153=1的三次方+5的三次方+3的三次方

答案 :for

number

in100...999

}

編寫乙個程式,要求可以把乙個字串中的每乙個字元,如果是大

寫字母變小寫字母,如果是小寫字母變大寫,如果是其他字元不變

例如: 字串china23beijing 經過程式轉換為china23beijing

答案:

/* 函式,將大寫字母變小寫,小寫字母變大寫,其他不變

*/func changecharcter (chnum:character) -> character

/*如果是大小寫字母,轉換數值

*///如果是大寫字母

ifnum >= 65 && num

<= 90

//如果是小寫字母

else

ifnum >= 97 && num

<= 122

/*將整數轉換為字元

*/let newchnum = character(unicodescalar(num)!)

return newchnum

}var str = "china23beijing "

var i = 0

//表示偏移量(迴圈變數初始值)

while i < str.characters.count

print(str)

編寫乙個程式,要求接收乙個數字,程式會將這個數字以二進位製方

式列印,例如:數字10 , 以1010的方式列印出來

答案 :

func binaryprintintnumber(num : int)

foritem

in remainderarr

print("")

}var a = 10

binaryprintintnumber(num: a)

print(a)

編寫乙個程式,判斷101-200之間有多少個素數,並輸出所有素數

答案:

var ispreimnum = true

//判斷是否是素數,是就是true不是就是false

var sum = 0

foritem

in101...200

}if ispreimnum

ispreimnum = true

}print(sum)}

編寫乙個程式,檢視1、2、3、4四個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?

var sum1 = 0

//定義變數用於記錄個數

for hudder in

1...4 }}

}print(sum1)

swift 日曆練習

不喜歡碼字的程式設計師有沒有,寧願多敲兩行 也不願意多寫兩個字。import foundation import uikit objc dateobject class dateobject nsobject import foundation extension nsdate return wee...

Swift 排序演算法

本文採用陣列實現。排序演算法 時間複雜度 空間複雜度 是否穩定 直接插入排序 o n 2 o 1 是希爾排序 o nlogn o 1 否氣泡排序 o n 2 o 1 是選擇排序 o n 2 o 1 否歸併排序 o nlogn o n 是快速排序 o nlogn o logn 否堆排序 o nlogn...

排序演算法(Swift)

電腦科學中,演算法的時間複雜度是乙個函式,它定性描述了該演算法的執行時間。這是乙個關於代表演算法輸入值的字串的長度的函式。時間複雜度常用大o符號表述,不包括這個函式的低階項和首項係數。使用這種方式時,時間複雜度可被稱為是漸近的,它考察當輸入值大小趨近無窮時的情況。func bubblesort ar...