柚子快报邀请码778899分享:java Swift算法小程序

http://yzkb.51969.com/

(1) 编写一个程序,能交换两个变量的数值 例如: 变量a值为20,变量b值为30,调用函数后,a的值变为30,b 的值变为20

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

let temp = a

a = b

b = temp

}

var x = 20 , y = 30

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

print(x,y)

(2) 编写一个程序,求1! + 2! + 3! + 4!的和 要求:使用嵌套定义函数实现

答案: func getSum(number: Int) -> Int {

//求某个数阶乘的结果

func getFactorIal(num: Int) -> Int {

var sum = 1

for _ in 1...num {

sum += 1

}

return sum

}

var total = 0

for item in 1...number {

total += getFactorIal(num: item)

}

return total

}

print(getSum(number: 3))

(3) 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

答案:func getFinboNum(num: Int) ->Int{

if num == 1 || num == 2 {

return 1

}

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

}

for month in 1...10{

print("\(month):\(getFinboNum(num: month))")

}

(4) 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方

答案 :for number in 100...999{

var hunder = number / 100

var ten = number / 10 % 10

var num = number % 10

let sum = pow(Decimal(hunder), 3) + pow(Decimal(ten), 3) + pow(Decimal(num), 3)

if sum == Decimal(number){

print(number)

}

}

(5) 编写一个程序,要求可以把一个字符串中的每一个字符,如果是大 写字母变小写字母,如果是小写字母变大写,如果是其他字符不变 例如: 字符串China23beiJing 经过程序转换为cHINA23BEIjING

答案:

/*

函数,将大写字母变小写,小写字母变大写,其他不变

*/

func changeCharcter (chNum:Character) -> Character {

//将字符转成整数

var chStr = String(chNum) //将字符转成字符串

var num:UInt32 = 0 //用于接受字符整数值的变量

for item in chStr.unicodeScalars {

num = item.value //循环只执行一次,获取字符的整数的值

}

/*

如果是大小写字母,转换数值

*/

//如果是大写字母

if num >= 65 && num <= 90 {

num += 32

}

//如果是小写字母

else if num >= 97 && num <= 122 {

num -= 32

}

/*

将整数转换为字符

*/

let newChNum = Character(UnicodeScalar(num)!)

return newChNum

}

var str = "China23beiJing "

var i = 0 //表示偏移量(循环变量初始值)

while i < str.characters.count { //循环条件,包含循环变量的终止值

var str1 = str[str.index(str.startIndex, offsetBy: i)]

// str1 = changeCharcter(chNum: str1)

str.replaceSubrange(str.index(str.startIndex, offsetBy:

i)...str.index(str.startIndex, offsetBy: i),

with: String(changeCharcter(chNum: str1)))

i+=1; //循环变量值变化

}

print(str)

(6) 编写一个程序,要求接收一个数字,程序会将这个数字以二进制方 式打印,例如:数字10 , 以1010的方式打印出来

答案 :

func binaryPrintIntNumber(num : Int) {

var remainderArr:[Int] = [] //int数组,存储余数

var quotient:Int = num //表示商的变量,初始值是num

while quotient > 0 { //商的值是0

let remainderNum = quotient % 2 //获取余数的值

remainderArr.insert(remainderNum, at: 0) //插入数组

quotient /= 2 //商变换

}

for item in remainderArr {

print(item, terminator: "")

}

print("")

}

var a = 10

binaryPrintIntNumber(num: a)

print(a)

(7) 编写一个程序,判断101-200之间有多少个素数,并输出所有素数

答案:

var isPreimNum = true //判断是否是素数,是就是true不是就是false

var sum = 0

for item in 101...200 { //遍历101到200中的任意数

for j in 2..

if item % j == 0 {

isPreimNum = false

break

}

}

if isPreimNum { //如果是素数

print(item) //打印这个素数

sum += 1

}

isPreimNum = true

}

print(sum)}

(8) 编写一个程序,查看1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

var sum1 = 0 //定义变量用于记录个数

for hudder in 1...4 { //百位

for ten in 1...4 { //十位

for num in 1...4 { //个位

if hudder != ten && hudder != num && ten != num {

print(hudder*100 + ten*10 + num)

sum1 += 1 //计算个数

}

}

}

}

print(sum1)

柚子快报邀请码778899分享:java Swift算法小程序

http://yzkb.51969.com/

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。