(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..<item { //判断item是不是素数
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)
原文地址:https://blog.csdn.net/eeeeety6208/article/details/127457746
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_38998.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!