![Swift 4从零到精通iOS开发](https://wfqqreader-1252317822.image.myqcloud.com/cover/794/26846794/b_26846794.jpg)
4.6 练习及解析
(1)将下列描述翻译成Swift表达式。
小李买了5支铅笔、1块橡皮、3本作业本和11个书签。每支铅笔2元,每块橡皮3元,每本作业本2.5元,每个书签0.5元,计算小李花了多少钱。
解析:
//共26元 var sum = 5*2+1*3+3*2.5+11*0.5
(2)设计一个表达式来生成1~7之间的随机数。
解析:
// arc4random()为Swift标准函数库中的随机数生成函数 var rand = arc4random()%7+1
(3)对语、数、外3门科目进行测试,当3门科目的成绩都大于60且总分不小于200分时,成绩才为合格,使用Swift表达式来描述上述逻辑。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P72_65807.jpg?sign=1739136171-gihlcq1wMlXttzgHWqc5JgmnCB6VrUQG-0-cad8ce1bda68aaf617a93a623af9e626)
(4)编写闰年判断的表达式。
闰年:① 能够被400整除。
② 能够被4整除但是不能够被100整除。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P72_65808.jpg?sign=1739136171-VICUMX1BLOzESc23eIY8VWqVgpv7I8tS-0-ece8c41b571e1f111c6e6151c9ca78d4)
(5)学校乒乓球比赛需要每班出一名主选手和一名辅助选手参赛,比赛分为上、下两场,上半场主选手得分超过30分则下半场需要辅助选手进行,否则下半场依然由主选手进行,使用条件运算符(三目运算符)描述下半场出赛的选手。
解析:
var mark = 40 var people = mark>30 ? "主选手" : "辅助选手"
(6)打印如下图案:
********** *????????* *????????* **********
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P73_65811.jpg?sign=1739136171-qAIXRvHDOva9huwa6IzIl2LWJLb1eTvD-0-92826ee96a650740b18d420a74808032)
print()函数会自动在打印末尾添加换行符,使用带3个参数的print()函数,并且将后两个参数设置为空字符串,以屏蔽print函数的自动换行功能。
(7)打印出所有的“水仙花数”。所谓“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P73_65812.jpg?sign=1739136171-FQ1vtxEm1lZKpyakv9JCVTzUWMoN45jG-0-6b17ee4aff0ed7b705d31dac3ca3d67e)
(8)猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,就只剩下一个桃子了。求第一天共摘了多少个桃子。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P74_65813.jpg?sign=1739136171-Qb7wZPlHqqd7lVyZurQW7jXGNVqjew0S-0-afcee57a79770ebaa8df01748dc13525)
(9)两个乒乓球队进行比赛,每队各出三人。甲队为p1、p2、p3三人,乙队为q1、q2、q3三人。抽签决定了比赛名单后,有人向队员打听比赛的名单。p1说他不和q1比,p3说他不和q1、q3比,请编写程序列出三对赛手的名单。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P74_65814.jpg?sign=1739136171-vR4owpUNfc1qnPkX5Fnkg1AhcPJU91ZX-0-292831b964b22179612b44ad810a1ef0)
(10)求1+2!+3!+...+20!的和。
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P74_65815.jpg?sign=1739136171-BHwyuxsulB22NxxwrcDEiQkJnhYAj9VL-0-25341b970c77a7cbc74feac6d34ed125)
(11)打印倒金字塔:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P75_65817.jpg?sign=1739136171-v5awvtWnQr19usBJoETMdqK0VKlH8Hih-0-c4c6382aa9aed235efb562b1e72f4853)
解析:
![](https://epubservercos.yuewen.com/BD6CFE/15289822004505406/epubprivate/OEBPS/Images/Figure-P75_65818.jpg?sign=1739136171-kcN7cUSUzMOybC2qXxeMA6y6TgBmnPv4-0-4eb7f3f8fe46f6119fccf2a9e6b77f0b)