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

题目描述

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

例如 输入

5 3

10 20 30 40 50

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

从大到小画出以下图形

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

输入格式

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

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

输出格式

相应的图形。

输入/输出例子1

输入:

5 2
80 40 60 20 100

输出:

样例解释

小明拿走了长度是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;
}
相关推荐
仟濹14 分钟前
【C/C++】经典高精度算法 5道题 加减乘除「复习」
c语言·c++·算法
顾安r30 分钟前
11.21 脚本 网页优化
linux·前端·javascript·算法·html
kk”1 小时前
C++ map
开发语言·c++
共享家95271 小时前
特殊类的设计
开发语言·c++
WolfGang0073211 小时前
代码随想录算法训练营Day27 | 56.合并区间、738.单调递增的数字、968.监控二叉树
算法
xiaoye-duck1 小时前
数据结构之排序-选择排序&交换排序
数据结构·排序算法
信奥卷王2 小时前
2025年9月GESPC++三级真题解析(含视频)
开发语言·c++·算法
努力学习的小廉2 小时前
我爱学算法之—— BFS之FLoodFill算法
算法·宽度优先
天选之女wow2 小时前
【Hard——Day8】65.有效数字、68.文本左右对齐、76.最小覆盖子串
linux·运维·redis·算法·leetcode
AI大模型学徒2 小时前
NLP基础(八)_马尔可夫模型
算法·机器学习·自然语言处理·nlp·概率论·马尔可夫模型