Swift练习题——变量&常量&基础操作符

Swift练习题——变量&常量&基础操作符

Swift这门语言不必过多介绍了,在Swift练习题系列的章节中,我们将会通过一些练习题,进一步拓展编程思维,加深对所学概念的掌握。

本次我们带来了2到Swift的练习题,所要用到的知识点主要是:

  • 变量
  • 常量
  • 基础操作符

实战演练

第一题:

若有一个8*8的矩阵,从左到右依次填入0~63的数字,矩阵从0行0列开始,现给出变量position等于0~63中任意一个数,求出position所对应的行,列。把行,列的值存在变量row和变量column中。

样例

输入:position = 54
row = 6
column = 6
复制代码

第二题:

给出平面直角坐标系中的两个点的坐标,求两点之间的距离。第一个点用常量point1表示,第二个点用常量point2表示,注意:坐标的横纵坐标信息要存在一个常量中最后将2点间的距离存在常量distance中。

样例

输入:point1(2,3)
输入:point2(8,11)
distance = 10
复制代码

题解

第一题: 对于矩阵的题目,可以在纸上画一画:

行: 0 01 02 03 04 05 06 07
列
:
0   00 01 02 03 04 05 06 07 
1   08 09 10 11 12 13 14 15 
2   16 17 18 19 20 21 22 23 
3   24 25 26 27 28 29 30 31 
4   32 33 34 35 36 37 38 39 
5   40 41 42 43 44 45 46 47 
6   48 49 50 51 52 53 54 55 
7   56 57 58 59 60 61 62 63 
复制代码

从给的样例54,不难看出54在第6行第6列。题目说明这是一个矩阵,必定每个数字的行、列和矩阵的行列数有关。我们不难发现54的行数是54 / 8的结果;54的列数是54 % 8的值。规律发现了,代码自然不难了。代码如下:

let position = 54
let row = position / 8
let column = position % 8
print("\(position)在矩阵的\(row)行,\(column)列") //输出:54在矩阵的6行,6列 
复制代码

第二题: 然而题目要求把一个点的横纵错标存在一个常量中,我们不妨用元组来解决这个问题。代码如下:

let point1 = (x: 2, y: 3)
let point2 = (x: 8, y: 11)
let distance = Double((point1.x-point2.x) * (point1.x-point2.x) + (point1.y - point2.y) * (point1.y - point2.y)).squareRoot()

复制代码

注意:squareRoot()只能针对Double类型的数据求算术平方根,此处要进行类型转换。


总结

本次内容主要运用了变量和常量与基本操作符的知识点来解题,内容十分简单。这里留下一道思考题:

若有一个n*n的矩阵,从左到右依次填入1~n^2的数字,矩阵从1行1列开始,现给出变量position等于1~n^2中任意一个数,求出position所对应的行,列。把行,列的值存在变量row和变量column中。

转载于:https://juejin.im/post/5a45f978518825390e348255

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Swift中,属性分为常量属性(常量存储属性)、变量属性(变量存储属性)和计算属性(计算型属性)。 1. 常量属性:用let关键字定义的属性,只能在初始化时被赋值一次,并且在之后的运行过程中不允许被修改。常量属性通常用于存储不变的值,例如表示圆周率的常量属性。 2. 变量属性:用var关键字定义的属性,可以在初始化后被赋值多次,并且在之后的运行过程中也可以被修改。变量属性通常用于存储可变的值,例如表示用户年龄的变量属性。 3. 计算属性:没有直接存储值,而是提供了一个getter和一个可选的setter来间接获取和设置其他属性或变量的值。计算属性可以用于实现一些复杂的逻辑,例如根据用户输入的值计算出其他相关的属性值。 例如,下面是一个包含常量属性、变量属性和计算属性的简单Swift类: ``` class Circle { let pi = 3.14 // 常量属性 var radius: Double // 变量属性 var area: Double { // 计算属性 return pi * radius * radius } init(radius: Double) { self.radius = radius } } ``` 其中,Circle类包含了一个常量属性pi表示圆周率,一个变量属性radius表示圆的半径,以及一个计算属性area表示圆的面积,它的值由pi和radius计算而来。在初始化时,radius属性被赋予了一个初始值,之后也可以通过修改radius属性的值来计算不同半径的圆的面积。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值