蛇形矩阵,有序单循环链表的插入,关于银行问题的设计类题目

第一题:蛇形矩阵

1.首先,第一步便是找规律(以六行六列为例):不难发现:

第一轮可以看作先写第一行,为6;再写最后一列,并且为6-1,接着写倒数第一行,也为6-1,最后写第一列,为6-2;

同理:第二轮可以看作先写第二行,为6-2,再写倒数第二列,并且为6-2-1,接着写倒数第二行,也为6-2-1,最后写第二列,为6-2-2;

同样:第三轮可以看作先写第三行,为6-2-2,再写倒数第三列,并且为6-2-2-1,接着写倒数第三行,也为6-2-2-1,最后写第三列,为6-2-2-2;

一共会进行三轮,即6/2;

则当a行b列时,进行a/2(a为偶数)或a+1/2轮(a为奇数);

因此,我们写函数时也按照此顺序:(设a为行数,b为列数)

2.关于这个规律的整体函数为

接下来,我们具体来看:

首先要注意,若行数为单数,也应进行其行数加一除二轮,即:

接着进行循环的第一步:

应循环的次数为是列数-循环次数*2; 每次数组的位置为第i行(总体循环的次数),第q+i列,此时最容易忽略i,但从第二轮开始,便需要加i。

第二步:

应循环的次数为是行数-1-循环次数*2;每次数组的位置为第w+1+i行,此时也最容易忽略i,但从第二轮开始,便需要加i,第b-i-1列。

第三步:

第三步是我认为较为复杂的一步,由于此时是逆着进行,所以是e--,因为此时数组的位置不再好表示,因此我引入了一个新的变量,来进行协助。

第四步:

第四步同理,循环次数为a-2*(i+1),也是r--,数组的位置较容易,行为r+I,列为I;

纵观全局,会发现当行数为奇数时,例:

此时,最后一轮只需要进行刚开始行的,即可,故而又加了一个if语句 。

在这里面,最容易出错的其实是数组具体的位置,需要耐心的找规律,注意加i;

3.最后,写出来主函数

第二题:有序单循环链表

我们先了解一些关于链表的相关知识:

构造链表时,先定义链表节点结构体,然后再将各个节点连接起来构成链表,而单循环链表就是将链表的尾和头通过指针连接起来,构成一个“圈”,再进一步,有序单循环链表就是链表里的数值是按照大小顺序连接的。

该题题目为:

1.那么该题的第一步:便是创建一个单循环链表节点的结构体

2.接着,便是构造一个有序单循环链表

这也是最关键的一步:分为三种情况讨论,head为空时,节点中的值小于下一个值,以及节点中的值小于下一个值(若我们构建单循环链表,只讨论前两中情况即可,即head为空时,head不为空时)

3.然后便是展示有序单循环链表:

在这里要注意,链表为空的情况

4.最后便是主函数:

第三题.关于银行问题的设计类题目

其实,对于初学者来讲,这一点就已经不知所措了。以Code Blocks为例,如图:

按照你的需求命名文件与地址即可

关于银行储存

1.首先创建一个Accout(在Account.h),满足题意要求的构造函数

具体函数在main函数中

2.然后再按照题意,创建SavingsAccount类(在SavingsAccount.h),继而创建函数

具体函数同样也是也在main函数中;

3.接着,便是主函数

由于创建了两个类,所以也要写个头文件;

这是关于Accout类的具体函数

这是关于SavingsAccout类的具体函数,需要特别注意题干所说,当存钱第二年时,此时的钱已经包含上一年的利息;

对银行卡进行初始化,以及进行一个菜单栏的显示。

接着便是具体操作。

  • 22
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值