Swift语言基础小习题(包含答案)-只适合菜鸟.

xiaoxiao2021-02-28  40

1、编写一个程序,要求可以把一个字符串中的每一个字符,如果是大写字母变小写字母,如果是小写字母变大写,如果是其他字符不变!

例如: 字符串China23beiJing 经过程序转换为cHINA23BEIjING

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

3、编写一个程序,判断101-200之间有多少个素数,并输出所有素数.

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

5、编写一个程序,能交换两个变量的数值

例如: 变量a值为20,变量b值为30,调用函数后,a的值变为30b的值变为20

6编写一个程序,求1! + 2! + 3! + 4!的和

要求:使用嵌套定义函数实现

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

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

答案:

(1)

func changeCharacter(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 string = "chinanFejfd#76Njwbjf"

var i = 0 //表示偏移量

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

    

    var ch = string[string.index(string.startIndex, offsetBy: i)]

    string.replaceSubrange(string.index(string.startIndex, offsetBy: i)...string.index(string.startIndex, offsetBy: i), with: String(changeCharacter(chNum: ch)))

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

    

}

print(string)

(2)

func binaryPrIntNumber(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

binaryPrIntNumber(num: a)

(3).

var isPreimNum = true

for l in 101...200 {    //遍历101-200中的任意数字

    for j in 2..<l-1 {//判断的条件

        if l%j == 0 {

            isPreimNum = false

            break

        }

    }

    if  isPreimNum {//如果是素数

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

    }

    isPreimNum = true

    

}

(4)

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)

            }

        }

    }

}

(5)

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)

(6)

func getsun(number:Int) ->Int {

    //求某个数的阶乘

    func get(num:Int)->Int {

        var sun = 1

        for i in 1...num {

            sun *= i

        }

        return sun

    }

    var total = 0

    for Item in 1...number {

        total += get(num: Item)

    }

    return total

}

print(getsun(number: 4))

(7)

func fibonacci(n:Int)->Int{

    

    if n==1 || n==2 {

        return 1

    }

    return fibonacci(n: n-1)+fibonacci(n: n-2)

}

for index in 1...30 {

    print("\(index)天的值:\(fibonacci(n: index))")

}

(8)

   第一种

var i = 100

while i < 999{

    

    var c = i / 100 //百位

    var b =  i / 10 % 10  //十位

    var a = i % 10   //个位

    var abc = a*a*a + b*b*b + c*c*c  //立方之和

    

    

    if abc == i {

        

        print("水仙花三位数:\(abc)")

    }

    

    i += 1  //累加

    

}

 8.2第二种

for number in 100...999 {

    var hunder = number / 100

    var ten = number / 10 % 10

    var num = number % 10

    

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

    

    if sum == Decimal(number) {

        print(number)

    }

}

转载请注明原文地址: https://www.6miu.com/read-1605992.html

最新回复(0)