Swift Playground練習

格子的樣式像下面這個:

Q1: 算全部格子的總和:答案是784

做法上其實就是用到兩個for迴圈去呈現x與y的交互關係,程式碼如下

var sum = 0for x in 0...7{  for y in 0...7{    sum += x * y   }}print(sum)

Q2:奇數行的數字總和

寫法上只要在y座標多一個判斷式就可以了,答案是448

var sum = 0for x in 0...7{  for y in 0...7 where y % 2 == 1{  sum += x * y  }}print(sum)

另外還有一題與這題非常像,只是改成要用func表示,而且可以自己定義行數與列數,需要注意的是因為我們是從0開始的,方法的行數或列數各要-1再去迴圈中判斷,才會是我們要的結果,寫法如下:

func sum(x:Int,y:Int){var result = 0for row in 0...x-1{   for column in 0...y-1{     if column * 2 != 0{       result += row * column     }   }}print(result)}

Q3: 所有格子的總和,除了列數>=行數的格子

寫法上其實跟Q2非常的像,只要把判斷式稍微修改一下就可以啦,答案為322

var sum = 0for x in 0...7{  for y in 0...7 where y > x{  sum += x * y  }}print(sum)

包裝成函式的寫法:

func sum(x:Int,y:Int){var result = 0for row in 0...x-1{for column in 0...y-1 where column > row{result += row * column}}print(result)}

Q4: 定義function,接受3個參數,起始值,最大值和決定數字倍數的number, 回傳運算結果 比方起始值3,最大值98,決定數字倍數的number為5時,(只包含5的倍數) 運算結果為 5 + 10 + 15 + ….. + 95:

這邊想到比較簡單的方法是直接判斷在裡面的所有數字除以定義的區隔,得到的餘數是否為0來判斷,再加上去。

func sum(min:Int,max:Int,interval:Int){var result = 0for i in min...max where i % interval == 0{result += i}print(result)}

Q5: 定義function,接受3個參數,起始值,最大值和決定數字倍數的number, 回傳運算結果 比方起始值3,最大值11,決定數字倍數的number為5時,(不包含5的倍數) 運算結果為 3 + 4 + 6 + 7 + 8 + 9 + 11

這題與上面那題非常像只要把餘數改成取到的不是0就可以了

func sum(min:Int,max:Int,interval:Int){var result = 0for i in min...max where i % interval != 0{result += i}print(result)}

--

--