当前位置: 首页 > news >正文

WebGoC题解(13) 狐猬编程:GoC L4 结业测试 第4题 找木柴

题目描述

小明今天找了n跟木柴,但是木柴太多了,小明只能拿走m根木柴,小明希望拿走的木柴都是剩下的木柴中最长的,小明还画出以下图形

例如 输入

5 3

10 20 30 40 50

小明要拿走30 40 50 这3根木柴 

从大到小画出以下图形

image.png

矩形的宽是20,矩形的高就是木柴的长度,两根木柴的距离是20,色号2,先移动到(-350,-350)再画图

输入格式

第一行两个正整数n和m,分别表示小明找到n跟木柴,和要拿走m跟木柴,范围是 1<=m<=n<100

第二行n个正整数,分别表示不同木柴的长度,范围是【10,500】;

输出格式

相应的图形。

输入/输出例子1

输入:

5 2
80 40 60 20 100

输出:

image.png

样例解释

小明拿走了长度是100 和 80的木柴

 解题思路

本题主要考察的是排序算法,因为题目中要把最高的m个矩形从高到矮画出来。

我们目前常用的是冒泡排序算法。

冒泡排序写法

写法1

for(int i=1;i<=n;i++){for(int j=i+1;j<=n;j++){if(a[j]>a[i]){int t=a[i];a[i]=a[j];a[j]=t;}}}

写法2

for(int i=1;i<n;i++)
{for(int j=n;j>i;j--){if(a[j]>a[j-1]){int t=a[j];a[j]=a[j-1];a[j-1]=a[j];}}
}

教程上的排序算法:选择排序的写法

for(int i=1;i<n;i++){m=i;for(int j=i+1;i<=n;j++){if(a[m]>a[j])m=j;}t=a[i]; a[i]=a[m]; a[m]=t;}

参考答案 

int main()
{int n,m,a[101];cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<n;i++)//冒泡排序{bool f=false;for(int j=n;j>i;j--){if(a[j]>a[j-1]){int t=a[j];a[j]=a[j-1];a[j-1]=t;f=true;}}if(f==false)break;}pen.up().moveTo(-350,-350).speed(10);for(int i=1;i<=m;i++){pen.fd(a[i]/2.0).rr(20,a[i]).bk(a[i]/2.0);pen.rt(90).fd(40).lt(90);  }return 0;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 自动驾驶---视觉Transformer的应用
  • 工具(linux)
  • 判断用户输入IP的合法性判断输入IP与本机IP是否在同一网段C++QT
  • 【中项】系统集成项目管理工程师-第4章 信息系统架构-4.3应用架构
  • (7) cmake 编译C++程序(二)
  • PyTorch 深度学习实践-循环神经网络(高级篇)
  • React--Redux
  • 多维时序 | Transformer+BiLSTM多变量时间序列预测(Python)
  • HAL库源码移植与使用之RTC时钟
  • 时间和空间复杂度
  • Docker、containerd、CRI-O 和 runc 之间的区别
  • 第1关 -- Linux 基础知识
  • AV1技术学习:Transform Coding
  • LeetCode:x的平方根(C语言)
  • Android 自定义系统版本号
  • javascript 哈希表
  • Laravel 实践之路: 数据库迁移与数据填充
  • Redash本地开发环境搭建
  • Swoft 源码剖析 - 代码自动更新机制
  • vue.js框架原理浅析
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 少走弯路,给Java 1~5 年程序员的建议
  • 推荐一个React的管理后台框架
  • 小程序测试方案初探
  • 源码安装memcached和php memcache扩展
  • 容器镜像
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #考研#计算机文化知识1(局域网及网络互联)
  • (AngularJS)Angular 控制器之间通信初探
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (笔试题)合法字符串
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (三)终结任务
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)setTimeout 和 setInterval 的区别
  • .apk 成为历史!
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .net6使用Sejil可视化日志
  • @requestBody写与不写的情况
  • @我的前任是个极品 微博分析
  • [.net]官方水晶报表的使用以演示下载
  • [C puzzle book] types
  • [C++]类和对象(中)
  • [C++参考]拷贝构造函数的参数必须是引用类型
  • [C++进阶]map和set的相关题目
  • [CareerCup] 6.1 Find Heavy Bottle 寻找重瓶子
  • [G-CS-MR.PS02] 機巧之形2: Ruler Circle
  • [Java并发编程实战] 共享对象之可见性