【iHooya】1月18日寒假作业解析

news/2023/5/28 7:51:41

按照个位数排序
对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。
输入:第一行1个整数n,表示序列的大小。( 0 < n ≤ 1000) 第二行n个正整数,表示序列的每个数,每个数不大于100000000。

输出:输出按照题目要求排序后的序列

样例输入
6
17 23 9 13 88 10

样例输出
10 13 23 17 88 9

/*方法1
可以先对原序列进行排序,也就是9 10 13 17 23 88
然后可以按照个位数进行排序 10 13 23 17 88 9
这样就解决了个位数相同按照本身大小从小到排序了*/
#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 a = 0; a < n; a++)//用冒泡排序对以个位数为条件对整个序列排序{for (int b = 0; b < n - a - 1; b++)if (arr[b] % 10 > arr[b + 1] % 10)swap(arr[b], arr[b + 1]);}for (int c = 0; c < n; c++)cout << arr[c] << " ";return 0;
}
//方法2:
//改写sort函数
#include<bits/stdc++.h>
using namespace std;
bool cmp(int a,int b)
{if(a%10<b%10)return true;else if(a%10>b%10)return false;else if(a%10==b%10)if(a<=b)return true;else return false;
}
int main()
{int n=0;cin>>n;int arr[n];for(int a=0;a<n;a++)cin>>arr[a];sort(arr,arr+n,cmp);for(int a=0;a<n;a++)cout<<arr[a]<<" ";return 0;
}

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

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

输出:增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

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

样例输出1,3,5,7,9

//对原序列进行升序排列,排完后再把奇数输出;
#include <bits/stdc++.h>
using namespace std;int main()
{int n = 0;cin >> n;int arr[n];for (int a = 0; a < n; a++)cin >> arr[a];sort(arr, arr + n);for (int b = 0; b < n; b++)if (arr[b] % 2 == 1)cout << arr[b] << ",";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=0;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;
}

分解因数
给出一个正整数a,要求分解成若干个正整数的乘积,即a = a1 * a2 * a3 * … * an,并且,问这样的分解的种数有多少。注意到a = a也是一种分解。

输入:第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数a (1 < a < 32768)

输出:n行,每行输出对应一个输入。输出应是一个正整数,指明满足要求的分解的种数

样例输入
2
2
20
样例输出
1
4

/*
1.首先在找因数之前你要判断这个数是否为质数,如果是质数那么就只有一直分解种数。
2.如果一个数n%a取余等于0,说明a是n的因子,那么n/a就表明这是除了a以外的其它因子乘积,比如:48%2==0,2就是48的因子,48/2=24,24就是48的其它因子或者因子乘积。
*/
#include<bits/stdc++.h>
using namespace std;
int count_s=1;//计数器
bool prime(int n)//判断质数
{if(n<2)return false;if(n==2)return true;if(n>2){for(int a=2;a<=sqrt(n);a++)if(n%a==0)return false;//说明不是质数return true;//说明是质数}	
}
void divide(int n,int m){if(prime(n)==true)//如果是质数直接跳出返回return ;elsefor(int a=m;a<=sqrt(n);a++){if(n%a==0)//说明a是n的因子{count_s++;//记录因子数量divide(n/a,a);// n/a是其它因子的乘积 下一次遍历从a开始遍历}		}		
}
int main(){int n=0;cin>>n;int arr[n];for(int a=0;a<n;a++)cin>>arr[a];for(int b=0;b<n;b++){divide(arr[b],2);cout<<count_s<<endl;count_s=1;//重新计数}return 0;
}

算24
给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。 这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。 比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。

输入:输入数据包括多行,每行给出一组测试数据,包括4个小于10个正整数。最后一组测试数据中包括4个0,表示输入的结束,这组数据不用处理。

输出:对于每一组测试数据,输出一行,如果可以得到24,输出“YES”;否则,输出“NO”。

样例输入
5 5 5 1
1 1 4 2
0 0 0 0

样例输出
YES
NO

/*
把原问题n个数中的任意两个数通过六种运算方式变成一个数,再把这个数和剩下的n-2个数进行合并,递归地求解n-1个数的24点问题。由于涉及浮点数的计算,在判断是否等于24时不能直接判等,而要采取与24做差、判断差是否小于EPS的做法来判断。
*/
/*1e-6(也就是0.000001)叫做epslon,用来抵消浮点运算中因为误差造成的相等无法判断的情况。它通常是一个非常小的数字(具体多小要看你的运算误差)比如说因为精度误差,用十进制举例,我们要算1/3+1/3+1/3==1(从数学上说,肯定相等),但是因为精度问题,等号左边算出来是0.3333333+0.3333333+0.3333333=0.9999999,存在了误差,右边是1.0000000,那么如果直接用==,返回false,我们希望它被视作相等。那么就要两数相减取绝对值小于epslon的办法。
*/
#include<bits/stdc++.h>
using namespace std;
bool search(double a[],int x) 
{if(x==1&&fabs(a[1]-24)<=1e-6)return 1;  //题目要求除法运算为实数;double b[6]={0};        //存放加减乘除的运算结果for(int i=1;i<=x-1;++i){for(int j=i+1;j<=x;++j){int p=1;for(int k=1;k<=x;++k){if(k!=i&&k!=j){b[p++]=a[k];}}b[p]=a[i]+a[j]; if(search(b,x-1))return 1;//分别递归,依次穷举;b[p]=a[i]*a[j]; if(search(b,x-1))return 1;b[p]=a[i]-a[j]; if(search(b,x-1))return 1;b[p]=a[j]-a[i]; if(search(b,x-1))return 1;if(a[j]!=0){b[p]=a[i]/a[j];if(search(b,x-1))return 1;}if(a[i]!=0){b[p]=a[j]/a[i];if(search(b,x-1))return 1;}}}return 0;
}
int main()
{while(true){double a[5]={0};int sum=0;for(int i=1;i<=4;++i){cin>>a[i];sum+=a[i];}if(sum==0)//结束测试break;bool flag=search(a,4);if(flag==1)cout<<"YES"<<endl;elsecout<<"NO"<<endl;  }return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

matlab将图片旋转的代码_数字图像处理实验合集(含代码、报告)

数字图像处理&#xff08;MATLAB&#xff09;实验一一、实验名称图像的采样与量化二、实验目的1.熟悉MATLAB软件的使用。2.掌握采样与量化的原理及数学运算。3.于MATLAB环境下编程实现对图片的不同程度的采样与量化。三、实验内容1.对于给定图片&#xff0c;在MATLAB软件下编程…

【九层之台】Web开发教程:8. 设计

目录8. 设计基本原理大公司的设计ModernUIAntDesignMaterial Design组件库Element 系列Material 系列其它组件库其他资源8. 设计 写这一章我很惭愧&#xff0c;我自以为自己完全没有设计思维。唯一的一点点设计想法主要都体现在我的“UI设计史有感”那篇文章上了。 网页应用当…

推荐一个好玩有趣适合上班摸鱼的小网站

传送门&#xff1a; 斌煜网 这个网站里面包含了很多有用的网址还进行分类 在精选网站下面细分了5个小类&#xff0c;分别是 应用型 主要是一些电脑软件的下载网址&#xff0c;都是免费的。 功能型 主要是一些设计类网站颜色转换、图片转换啥的。 资源型 主要是一些资源的…

分享几个黑科技神奇的网站,第一次发现的时候,我就“心动”了

第一个网站 Weavesilk weavesilk是一个光线的绘画网站&#xff0c;可以用鼠标绘制一些简单但是很科幻的图。 如果你功底好&#xff0c;那你画出来的就太酷了。 第二个网站 WordArt 这是一个文字云生成的网站&#xff0c;我给好多人推荐过&#xff0c;大家都非常喜欢&#xf…

数字图像处理|Matlab-图像分割与边缘检测实验-Hough线检测

Matlab-图像分割与边缘检测实验-Hough线检测 代码链接&#xff1a;https://download.csdn.net/download/qq_43571150/12033268 问题1&#xff1a;对作业一中边缘检测的结果&#xff0c;进行Hough线检测。 问题2&#xff1a;调节参数&#xff0c;提取较长的边界。 图像结果&a…

【openCV边缘检测】用传统方法实现边缘检测(二)色彩空间

Gitee地址&#xff1a;https://gitee.com/jzhou955/edge_detection.git 欢迎star or fork。 项目需求 检测图片中特定部分的轮廓。单纯用边缘提取算子处理图片得到的效果并不理想。由于图片边缘两边的颜色差异较大&#xff0c;考虑用色域分离的方法进行边缘提取。 项目记录 R…

直播预告 | 图形学专场——中国科学院计算技术研究所高林老师团队

点击蓝字关注我们AI TIME 欢迎每一位AI爱好者的加入&#xff01;6月8日、9日19:30&#xff0c;本期我们特别邀请到中国科学院计算技术研究所高林老师的团队的同学们给大家带来精彩的分享&#xff0c;带我们一起走进“图形”的世界&#xff01;哔哩哔哩直播通道扫码关注AI TIME哔…

Upload LABS Pass-7

第七关在后端使用了黑名单 , 并过滤了大小写,空格 , 但未过滤点 , 我们使用代理拦截请求,将后缀名添加点. , 来绕过黑名单 准备一个 7.php 文件 , 内容为一句话木马 <?php eval($_POST[-7]);?> 上传 7.php 文件 , 并使用代理( 此处使用 Burp Suite)拦截请求 在文件后…

upload-labs-master Pass1-20笔记

实验环境&#xff1a; Windows 7 X64 Phpstudy 2018 PHP 5.4.45 Apache 2.4.23 靶机项目地址&#xff1a;https://github.com/c0ny1/upload-labs Pass01 — JS限制 开启burp抓包&#xff0c;尝试上传eval.php,点击上传后页面直接提示该文件不允许上传&#xff0c;而burp并没有…

文件上传漏洞—upload-labs(Pass-01—Pass-21)通关大合集

~目录~开始Pass-01 JS绕过Pass-02 Content-Type绕过Pass-03 部分黑名单绕过Pass-04 .htaccess绕过Pass-05 .user.ini绕过.空格.绕过Pass-06 大小写绕过Pass-07 空格绕过Pass-08 点绕过Pass-09 ::$DATA绕过Pass-10 .空格.绕过Pass-11 双写绕过Pass-12 GET型00截断绕过Pass-13 PO…

Ubuntu下Nginx配置路径及proxy_pass问题记录

首先&#xff0c;ubuntu下nginx的配置文件可以位于好几个地方&#xff0c;但是一般都是在/etc/nginx/这个大的目录下面&#xff0c;包括其下的conf.d目录&#xff0c;nginx.conf文件&#xff0c;sites-available目录和sites-enabled目录。默认的sites-enabled/default是个软连接…

[UnityShader]多Pass处理透明度

在shader中想让物体出现透明的地方有两种思路。 把物体的渲染队列设置为transparent&#xff0c;此时的物体将会在所有不透明物体之后渲染&#xff0c;从而保证正确的渲染结果。然后我们使用Blend指令来把原颜色缓冲区的颜色乘上当前物体的a通道值,来进行混合。使用Clip指令来…

PCL之直通滤波--PassThrough

作用: 过滤掉指定字段上用户定义范围空间内的点集。 原理&#xff1a;首先&#xff0c;指定字段及该字段下的取值范围;其次&#xff0c;遍历点云中的每个点&#xff0c;删除取值不在值域内的点;最后&#xff0c;遍历结束&#xff0c;留下的点即构成滤波后的点云 效果: 简单高…

Upload-Labs-Pass-07

目录 一、相关知识 1、空格绕过原理&#xff1a; 二、环境搭配 三、文件上传 1、创建webshell 2、设置代理 3、文件上传 四、Weevely连接 一、相关知识 1、空格绕过原理&#xff1a; Windows系统下&#xff0c;文件后缀名最后一个点会被自动去除掉。 二、环境搭配 攻…

Python pass关键字 使用说明

关于 Python 中的pass语句&#xff0c;它似乎很简单&#xff08;只有 4 个字母&#xff09;&#xff0c;即使是没有任何编程经验的初学者也能很快地掌握它的用法。 官方文档 的介绍十分简单&#xff0c;下面的三个例子可以让我们快速地了解到如何使用它&#xff1a; 简单而言&…

高级自动化测试5个重要面试题(含金量高,分水岭能pass掉很多人)

前言 高级自动化测试5个重要面试题&#xff08;含金量高&#xff0c;分水岭能pass掉很多人&#xff09; 因为篇幅有限&#xff0c;上图给大家整理的学习资料和大厂面试题不能全展现出来&#xff0c;我把上所有的资料都放在共众号【程序员阿信】中了&#xff0c;关注之后回复66…

做了3年大厂HR,这几种程序员我会直接pass掉!

在写这个标题的时候&#xff0c;就想到一个问题&#xff1a;由于“pass”这个词&#xff0c;会不会让一部分读者误会为直接通过的意思&#xff1f;所以在这里特地说明下&#xff0c;我想表达的意思是会被直接淘汰掉&#xff01;淘汰掉&#xff01;淘汰掉&#xff01;所以你如果…

中台技术选型:pass掉spring cloud,而dubbo为啥?spring cloud 10w并发太难了,从性能比较有图有真相

dubbo Dubbo 是一个分布式服务框架&#xff0c;致力于提供高性能和透明化的RPC 远程服务调用方案&#xff0c;以及SOA 服务治理方案。简单的说&#xff0c;Dubbo 就是个服务框架&#xff0c;说白了就是个远程服务调用的分布式框架 优点&#xff1a; 传输性能&#xff1a;二进…

5G多媒体通信来了,赶快上车

新冠疫情加快了金融行业的线上化转型趋势&#xff0c;银行、保险等大量面签业务迁移至APP和微信小程序&#xff0c;电话外呼成为行业主动触达客户的重要推广手段。 面对这样的行业趋势&#xff0c;通信能力开放平台推出5G多媒体通信融合应用&#xff0c;打造系列明星产品。 本…

5G终于来了!三大运营商试点城市出炉:有你家吗

据新华社报道&#xff0c;从从三大运营商处证实&#xff0c; 国家发改委等有关部门已批准联通、电信、移动在北京等部分城市试点建设5G网络。 中国联通披露&#xff0c;将在北京、天津、青岛、杭州、南京、武汉、贵阳、成都、深圳、福州、郑州、沈阳等16个城市开展5G试点。 中…