【iHooya】2023年2月2日寒假作业解析

news2024/11/13 22:20:28

请添加图片描述

#include <bits/stdc++.h>
using namespace std;

int main()
{

	int n, r; //n个人,r个水龙头
	cin >> n >> r;
	int time[n];
	for (int a = 0; a < n; a++)
	{
		cin >> time[a];
	}
	sort(time, time + n); //时间从小到大排序
	int minx = 0, lt_time[10001], j = 0; //存水龙头的时间,表示哪个水龙头
	for (int a = 0; a < n; a++)
	{
		j++;
		if (j == r + 1)
			j = 1; //水龙头是交替更换的
		lt_time[j] += time[a];
		minx += lt_time[j];
	}
	cout << minx;

	return 0;
}

偶数降序输出
给定一个长度为N(不大于500)的正整数序列,请将其中的所有偶数取出,并按降序输出。

输入
共2行:第1行为N;第2行为N个正整数,其间用空格间隔。

输出
降序输出的偶数序列,数之间以空格间隔。数据保证至少有一个偶数。

样例输入
10
l 3 2 6 5 4 9 8 7 10

样例输出
10 8 6 4 2

#include <bits/stdc++.h>
using namespace std;

//对数组进行升序排序后,倒序输出把偶数输出出来
int main()
{
	int n;
	cin >> n;
	int arr[n];
	for (int a = 0; a < n; a++)
		cin >> arr[a];
	sort(arr, arr + n); //对数组进行升序排列
	for (int b = n-1; b >= 0; b--)
	{
		if (arr[b] % 2 == 0) //数组元素如果是偶数
			cout << arr[b] << " ";
	}

	return 0;
}
#include <bits/stdc++.h>
using namespace std;

//给数组输入的时候判断是否为偶数,如果是偶数就添加到动态数组里
int main()
{
	int n;
	cin >> n;
	int arr[n];
	vector<int> v;
	for (int a = 0; a < n; a++)
	{
		cin >> arr[a];
		if (arr[a] % 2 == 0)
			v.push_back(arr[a]);
	}

	sort(v.begin(), v.end()); //对动态数组进行升序排列
	for (int a = v.size() - 1; a >= 0; a--)//倒序输出
		cout << v[a] << " ";

	return 0;
}


图像处理
给定n行m列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:

  1. 四周最外侧的像素点灰度值不变;
  2. 中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。

输入
第一行包含两个整数n和m,表示图像包含像素点的行数和列数。1 <= n <= 100,1 <= m <= 100。 接下来n行,每行m个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。

输出
n行,每行m个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。

样例输入
4 5
100 0 100 0 50
50 100 200 0 0
50 50 100 100 200
100 100 50 50 100

样例输出
100 0 100 0 50
50 80 100 60 0
50 80 100 90 200
100 100 50 50 100

#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n, m;
	cin >> n >> m;
	int arr[n][m];
	for (int a = 0; a < n; a++)
		for (int b = 0; b < m; b++)
			cin >> arr[a][b];
	int sum = 0;
	for (int a = 0; a < n; a++)
	{
		for (int b = 0; b < m ; b++)
		{
			if (a == 0 || a == n - 1 || b == 0 || b == m - 1)//最外圈元素正常输出
			{
				cout << arr[a][b] << " ";
			}
			else if (a > 0 && a < n - 1 || b > 0 && b < m - 1)//按照自己及四个方向求平均值
			{
				sum = arr[a][b] + arr[a - 1][b] + arr[a + 1][b] + arr[a][b - 1] + arr[a][b + 1];
				cout << sum / 5 << " ";
			}
		}
		cout << endl;
	}

	return 0;
}

字符统计
给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。

输入
输入包含一行,一个字符串,长度不超过1000。

输出
输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。

样例输入
abbccc

样例输出
c 3

#include <bits/stdc++.h>
using namespace std;

int main()
{
	string s;
	getline(cin, s);
	sort(s.begin(), s.end()); //对字符串内的字符按照ASCII码进行排序
	int maxn = 0;
	int count = 1;
	char c;
	for (int a = 0; a < s.length(); a++)
	{
		if (s[a] == s[a + 1])
		{
			count++;
		}
		else
		{
			if (count > maxn)
			{
				maxn = count;
				c = s[a];
			}
			count = 1;
		}
	}
	cout << c <<" "<< maxn;
	return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main()
{
	string s;
	getline(cin, s);
	int letter[26] = {0};
	int maxn = 0, max_xb = 0;
	for (int a = 0; a < s.length(); a++)
		letter[s[a] - 'a']++; //统计a~z出现的次数
	for (int a = 0; a < 26; a++)
	{
		if (letter[a] >= maxn)
		{
			maxn = letter[a];
			max_xb = a;
		}
	}
	cout << (char)(max_xb + 'a') << " " << maxn;
	return 0;
}
#include <bits/stdc++.h>
using namespace std;

//用动态数组做
int main()
{
	string s;
	getline(cin, s);
	sort(s.begin(), s.end());
	vector<string> vec;
	int x = 0; //连续字符的起始位置
	for (int a = 0; a < s.length(); a++)
	{
		if (s[a] != s[a + 1])
		{
			vec.push_back(s.substr(x, a - x + 1));
			x = a + 1;
		}
	}
	int maxn = 0;
	char c;
	for (int b = 0; b < vec.size(); b++)
	{
		if (vec[b].length() > maxn)
		{
			maxn = vec[b].length();
			c = vec[b].front();
		}

	}
	cout << c << " " << maxn;
	return 0;
}

波兰表达式
波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的波兰表示法为+ 2 3。波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改变运算次序,例如(2 + 3) * 4的波兰表示法为* + 2 3 4。本题求解波兰表达式的值,其中运算符包括+ - * /四个。

输入:输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。

输出:输出为一行,表达式的值。

样例输入

    • 11.0 12.0 + 24.0 35.0

样例输出
1357.000000

使用栈求解前缀表达式
从右向左扫描前缀表达式。
遇到数字时,将数字入栈。
遇到运算符时,弹出栈顶的两个数,用该运算符对它们做相应的计算,结果入栈。
扫描结束后,栈顶数字就是结果。

EOF同时摁下ctrl+z然后回车代表结束程序


#include <bits/stdc++.h>
using namespace std;
#define N 1005
struct Node
{
    double n;
    char c;
};
Node eq[N];
int p;
double calc(double a, double b, char c)
{
    switch(c)
    {
        case '+':
            return a+b;
        case '-':
            return a-b;
        case '*':
            return a*b;
        case '/':
            return a/b;
    }
}
double solve()
{ 
    stack<double> stk;
    for(int i = p; i >= 1; --i)
    {
        if(eq[i].c)//如果是运算符 
        {//后进先出,第1运算数先出栈,第2运算数后出栈 
            double a = stk.top(); 
            stk.pop();
            double b = stk.top(); 
            stk.pop();
            stk.push(calc(a, b, eq[i].c));
        }
        else//数字 
            stk.push(eq[i].n);//第2运算数先入栈,第1运算数后入栈。 
    }
    return stk.top();
}
int main()
{
    char s[30];
    while(scanf("%s", s) != EOF)
    {
        if(s[0] == '+' || s[0] == '*' || s[0] == '/' || s[0] == '-' && strlen(s) == 1)//运算符 排除这是个负数 
            eq[++p].c = s[0];
        else//数字 
            eq[++p].n = atof(s);
    }
    printf("%f", solve());
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/196331.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序全过程:觉醒(序)

程序全过程序很惭愧&#xff0c;写了几年的程序&#xff0c;技术的功力没有太大增长&#xff0c;只是在项目的熟悉程度上有不少进步。因为上学时没好好学&#xff0c;很多现在工作中用到的编程技能都是在工作中边学边用的&#xff0c;相当于一直处于临时抱佛脚的状态&#xff0…

iptables端口复用

环境&#xff1a; 攻击主机&#xff1a;Kali -- 192.168.218.135 目标主机&#xff1a;RHEL8 -- 192.168.218.129 什么是端口复用 端口复用是指不同的应用程序使用相同端口使用相同端口进行通讯。 场景 目标主机是Linux系统&#xff0c;目标主机防火墙有严格的限制&#…

【FAQ】申请运动健康服务验证环节常见问题及解答

华为 HMS Core 运动健康服务&#xff08;HUAWEI Health Kit&#xff09;提供原子化数据开放。应用在获取用户数据授权后&#xff0c;可通过接口访问运动健康数据&#xff0c;对用户数据进行读写等操作&#xff0c;为用户提供运动健康类数据服务。 开发者应用在开发和测试阶段访…

SGI STL二级空间配置器源码剖析(2)

接着上回&#xff0c;这节开始说allocte内存分配的实现 目录 allocate源码流程&#xff1a; _S_refill 的实现&#xff1a; _S_chunk_alloc的实现&#xff1a; deallocate&#xff1a; reallocate&#xff1a; 二级空间配置器的逻辑步骤&#xff1a;假如现在申请n个字节&…

选择计算机专业,必看的10条自学建议

选择了计算机专业&#xff0c;很迷茫&#xff0c;没事&#xff01;&#xff01;博主整理了关于学习计算机的十条自学经验&#xff0c;从各个方面阐述了如何学习计算机专业。 1、学会使用Google搜索&#xff0c;放弃百度&#xff0c;你会发现Google 会搜出更多有用的答察&#x…

车规级MCU缺货持续2年多,上海航芯持续加码市场

MCU是传统燃油车的重要芯片之一&#xff0c;在电动车领域&#xff0c;MCU也有着广泛的应用&#xff0c;且随着汽车电子化的持续发展&#xff0c;车用MCU的市场规模还将随之持续扩大&#xff0c;据 IC insights 数据显示&#xff0c;至2026年&#xff0c;全球车规级MCU的市场规模…

C++——函数重载,引用

✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;C &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f4ac;<5>前言&#xff1a;补充C语言语法的不足&#…

【Kubernetes】记录一次K8S容器内程序OOM排查过程:unable to create new native thread

文章目录项目背景问题初现问题排查问题定位问题解决项目背景 基于k8s的容器化kafka PaaS管理平台&#xff0c;业务团队申请kafka&#xff0c;通过一系列操作&#xff0c;封装crd&#xff0c;调用operator创建集群&#xff0c;当然还包括其他功能、topic管理、group管理、监控告…

年后上来面试了13家企业软件测试岗位,面试题整理

软件测试面试&#xff0c;800多道高频面试真题&#xff0c;随便刷。&#xff08;希望能帮助大家&#xff09;项目的测试流程 1. 拿到需求文档后&#xff0c;写测试用例 2. 审核测试用例 3. 等待开发包 4. 部署测试环境 5. 冒烟测试&#xff08;网页架构图&#xff09; 6.…

CSS中height:100vh和height:100%的区别是什么?

CSS中height:100vh和height:100%的区别 首先&#xff0c;我们得知道1vh它表示的是当前屏幕可见高度的1/100&#xff0c;而1%它表示的是父元素长或者宽的1%&#xff08;可以这么理解&#xff1f;&#xff09; 1、对于设置height:100%;有下面几种情况&#xff1a; &#xff08…

如何使用Maven快速构建JavaWeb项目?在idea中使用TomCat详细解读

文章目录1. 前言2. Web项目的结构3. 创建Maven Web项目4. 在IDEA中使用TomCat4.1 集成本地TomCat4.2 使用TomCat Maven插件5. 总结&#x1f4c2;橙子精品文章学习推荐1. 前言 前面在 Web 服务器 TomCat 快速入门一文中&#xff0c;我们介绍了 Web 服务器的基本概念以及 TomCat…

工业平板电脑实现工厂自动化设备无需手动连接

随着中国经济的快速发展和材料水平的不断提高&#xff0c;制造业的竞争日益激烈&#xff0c;市场竞静力逐渐转向质量、效率和价格服务&#xff0c;制造业企业面临更大的挑战&#xff0c;数据转型迫在眉睫。对工业平板电脑的需求也在增加&#xff0c;面向行业的工业平板电脑已成…

Java设计模式--工厂模式

目录 1.简单工厂模式 1.1类图 1.2 代码示例 2.工厂方法模式 2.1 类图 2.2 代码示例 3.抽象工厂模式 3.1 类图 3.2 代码示例 实际应用&#xff1a; 总结&#xff1a; 1.简单工厂模式 定义了一个创建对象的类&#xff0c;由这个类来封装实力化对象的行为。 1.1类图 1.…

《三体》中罗辑所说的定位行星的位置,是怎样实现的?

最近流浪地球2&#xff0c;三体电视剧火得一塌糊涂&#xff0c;《三体》中罗辑用咒语标记了三体星系位置&#xff0c;利用黑暗森林理论与三体人对峙长达两百年&#xff0c;那么这种定位技术在现实中是否存在呢&#xff1f;咒语标记三体星系位置这件事&#xff0c;听起来很玄乎但…

vite兼容chrome48的方法

chrome48不支持async await语法&#xff0c;但有些桌面客户端的内嵌浏览器就是chrome48,如下操作即可兼容 当前环境&#xff1a;2023-2-3使用npm create vitelatest创建 开始兼容操作 安装vite推荐的 vitejs/plugin-legacy 文档官网 https://github.com/vitejs/vite/tree/m…

【JavaEE】HTTP的方法、报头、状态码

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【JavaEE】 ✈️✈️本篇内容:http请求的方法、报头&#xff1b;状态码&#xff01; &#x1f680;&#x1f680;代码存放仓库gitee&#xff1a;JavaEE代码&#…

学习QCustomPlot【4】库官方examples之plots解读

文章目录一、前言二、案例解说0&#xff1a;Quadratic Demo【二次曲线demo】1、Simple Demo【简单demo】2、Sinc Scatter Demo【Sinc函数散点demo】3、Scatter Style Demo【散点样式demo】4、Line Style Demo【线型demo】5、Scatter Pixmap Demo【图标散点demo】6、Date Demo【…

RANSAC的实现与应用

一、前言RANSAC(Random Sample Consensus)算法并不陌生&#xff0c;在上一篇博客中&#xff08;基于SIFT的图像Matlab拼接教程&#xff09;也提到过&#xff0c;之前代码中也多次用过&#xff0c;其在直(曲)线拟合、特征匹配、过滤外点(Outlier)等领域有着重要的应用。RANSAC出…

线性代数之线性基

在谈论线性基之前,先介绍什么是基向量. 根据高中数学,一个二维直角平面坐标系中的所有向量都可以只用(0, 1)和(1, 0)合成.那么(0, 1)和(1, 0)就是基向量,所有基向量能合成的所有向量被称为基向量的张成空间. 在二维空间中,有没有其他的向量能作为基向量呢?答案是肯定的. 上图…

Oracle事務簡述

簡述本文主要介紹內容有事務的隔離級別&#xff0c;oracle支持的事務隔離級別&#xff0c;事務的提交與回滾&#xff0c;保存點內容事務的ACID特征介紹事務繞不過事務的ACID四個特征&#xff0c;這裡簡單回顧以下原子性&#xff08;Atomicity&#xff09;事務的執行要麼全部成功…