Swift 5从零到精通iOS开发训练营
上QQ阅读APP看书,第一时间看更新

4.6 练习及解析

(1)将下列描述翻译成Swift表达式。

小李买了5支铅笔、1块橡皮、3本作业本和11个书签。每支铅笔2元,每块橡皮3元,每本作业本2.5元,每个书签0.5元,计算小李共花了多少钱。

解析:

     // 共26元
     // 将不同类型的数据拆开计算,方便Swift进行类型推断
     var tip =  11 * 0.5
     var book = 3 * 2.5
     var sum = 5 * 2 + 1 * 3 + tip + book

(2)设计一个表达式来生成1~7的随机数。

解析:

     // arc4random()为Swift标准函数库中的随机数生成函数
     var rand = arc4random()%7+1

(3)语文、数学、英语3门科目进行测试,当3门科目的成绩都大于60且总分不小于200分时,成绩才为合格,使用Swift表达式来描述上述逻辑。

解析:

(4)编写闰年判断的表达式。

闰年:①能够被400整除。

②能够被4整除,但是不能够被100整除。

解析:

     var year = 2016
     if year%400==0 || ((year%4==0) && (year%100 != 0)) {
        print("闰年")
     }

(5)学校乒乓球比赛需要每班出一名主选手和一名辅助选手参赛,比赛分为上下两场,上半场主选手得分超过30分则下半场需要辅助选手进行比赛,否则下半场依然由主选手进行比赛,使用条件运算符(三目运算符)描述下半场比赛出赛的选手。

解析:

     var mark = 40
     var people = mark>30 ? "主选手" : "辅助选手"

(6)打印如下图案:

     **********
     *????????*
     *????????*
     **********

解析:

print()函数会自动在打印末尾添加换行符,使用带三个参数的print()函数,并且将后两个参数设置为空字符串可以屏蔽print函数的自动换行功能。

(7)打印出所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。

解析:

(8)猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

解析:

(9)两个乒乓球队进行比赛,每队各出三人。甲队为p1、p2、p3三人,乙队为q1、q2、q3三人。抽签决定了比赛名单后,有人向队员打听比赛的名单。p1说他不和q1比,p3说他不和q1、q3比,请编写程序列出三队赛手的名单。

解析:

(10)求1+2!+3!+...+20!的和。

解析:

(11)打印倒金字塔

解析: