4条回答 默认 最新
- qq_25376897 2021-03-11 10:04关注
其实加个打印就知道了。
while (s!=1); 反过来想,也就是s为1的时候结束,那if(b[i]>b[i+1])这个判断必须只能满足一次。
if(b[i]>b[i+1]) 翻译过来就是 前一个大于后一个,我们知道,原来的牌组是单调递增的,如果最后洗成原来一样,前面都是小于后面的,怎么出现大于的情况呢?
注意最后一个for循环 i的取值范围,i<2n,所以最后一次的b[i+1]其实就是b[2n],而数组的下标是从0开始的,所以这里的b[2n]其实就是牌组之外的数据,也就是一开始的0,那么最后一张牌就可以大于后一个,就是我们要找的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
- ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
- ¥45 求17位带符号原码乘法器verilog代码
- ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
- ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
- ¥15 怎么看我在bios每次修改的日志
- ¥15 python+mysql图书管理系统
- ¥15 Questasim Error: (vcom-13)
- ¥15 船舶旋回实验matlab
- ¥30 SQL 数组,游标,递归覆盖原值