计蒜客详解合集(3)期

news2025/1/15 12:52:05

目录

T1236——分苹果

T1113——整理药名

T1153——整数奇偶排列

T1249——漂亮的字符串

T1168——统计素数个数

T1160——甲流病人筛选


T1236——分苹果

分享一道特别简单的题。

  • 蒜头君要把一堆苹果分给  个小朋友,要使每个人都能拿到苹果,而目每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?
  • 输入格式:个不大于 1000 的正整数 n,代表小朋友人数
  • 输出格式:个整数,表示满足条件的最少苹果个数。

        根据题意,不难看出,如果要求最少的苹果个数,则第一个小朋友需要给得最少(即1个),之后每个人多一个,既满足了不同于之前的所有人,还能满足最少的条件。

 所以,只需要将1~n依次累加,即可满足目标条件。


#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
    
    int n=0;
    cin>>n;
    
    int sum=0;
    for(int i=1;i<=n;i++)
    {
        sum+=i;    
    }
    cout<<sum<<endl;
    
    return 0;
}

T1113——整理药名

先看题干:

  • 医生在书写药品名的经算不击高大小写,格中以混,现要求 个字将生写为题是备理 范的格式,药品名的第 字的如果是字@要大写,其他字@小写,如将"ASPIRIN"或'aspirin”整理成“Aspirin"。
  • 输入格式:第一行一个数字n,表示有 n个药品名要整理,n 不超过 100;接下来n 行,每行一个单词,长度不超过 20,表示医生手书的药品名。药品名由字母、数字和 - 组成,
  • 输出格式:n 行,每行一个单词,对应输入的药品名的规范写法。

这道题并不难,如果你对编程语言的基础有很好的掌握,很容易理清整个逻辑。实际上,不涉及到算法的题目都是简单题。笔者带领大家理一下这道题的考察点:

1.输入多个不定长字符串

2.将字符串的首字母一律变为大写(分本来就是大写和本来是小写两种情况)

3.将字符串的其他字母一律变为小写(分本来及时小写和本来是大写两种情况)

        部分地方博主采用了STL的vector和string嵌套使用,实际上普通的字符数组也能搞定,只不过STL用习惯了是真的简洁;字符处理,单独写一个函数即可,用if-else判断多种情况~

 完整代码如下:

#include <iostream>
#include <string>
#include <vector> 
using namespace std;

void Dx(int num,char x)
//输入参数分别是字符下标和字符本身 
{
	if(num==0)//首字母:本身是大写直接输出,小写要转换为大写 
	{
		if(x>='a'&&x<='z')
		{
			x=x-32;
			printf("%c",x);
		}	
		else
		{
			printf("%c",x);
		}	
	}
	else if(num>0)//其他字母,小写直接输出,大写要转换为小写 
	{
		if(x>='A'&&x<='Z')
		{
			x=x+32;
			printf("%c",x);
		}		
		else
		{
			printf("%c",x);
		}
	}
} 


int main(int argc, char** argv) {
	
	int n=0;
	cin>>n;
	vector<string> V;
	
	for(int i=1;i<=n;i++)
	{
		string temp;
		cin>>temp;
		V.push_back(temp);
	}
	//将输入的字符串存入vector容器中 
	
	
	for(int i=0;i<=n-1;i++)
	{
		string goal=V[i];
		for(int j=0;j<=goal.length()-1;j++)
		{
			Dx(j,goal[j]);
			//对每一个字母单独通过函数处理 
		}
		cout<<endl;
		//每处理完一段函数要换行 
	}
	return 0;
}

T1153——整数奇偶排列

  • 蒜术师给了你一个 10 个整数的序列,要求对其重新排序。排序要求:

1.奇数在前,偶数在后

2.奇数按从大到小排序

3.偶数按从小到大排序。

  • 输入格式:输入一行,包含 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0,小于等于 100~
  • 输出格式:按照要求排序后输出一行,包含排序后的 10 个整数,数与数之间以一个空格分开

 这道题本来很简单,但是被我写复杂了,我用的是两个vector分别处理奇数和偶数,最后用algorithm头文件自带的sort和reverse函数直接处理好再拼凑在一起,其实用普通的数组自己写逻辑也很快能写出来,不过我现在的状态实在是不想思考逻辑了,本帖仅供参考,只能通过,不算高明的做法。

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main(int argc, char** argv) 
{
	vector<int> V;
	
	for(int i=1;i<=10;i++)
	{
		int n=0;
		cin>>n;
		V.push_back(n);	
	}	
	
	vector<int> V1,V2;
	for(int i=0;i<=9;i++)
	{
		if(V[i]%2==1)
			V1.push_back(V[i]);
		else
			V2.push_back(V[i]);	
	} 
	
	V.clear();
	sort(V1.begin(),V1.end());
	sort(V2.begin(),V2.end());
	reverse(V1.begin(),V1.end());
	
	//空间换时间,并不是高明的做法
	//注意sort算法默认从小到大排序 
	
	for(int i=0;i<=V2.size()-1;i++)
	{
		V1.push_back(V2[i]);
	}
	for(vector<int>::iterator it=V1.begin();it!=V1.end();it++)
	{
		cout<<(*it)<<" ";
	}

	return 0;
}

T1249——漂亮的字符串

 题干如下:

  • 小蒜认为如果一个字符串中每个字符出现的次数都是偶数次,那么这个字符串是美丽的;现在给你一个字符串 s,长度不超过 100,请判断这个字符串是否是美丽的。
  • 输入格式:个字符串 8。
  • 输出格式:如果是美丽的字符串,输出"Yes",否则输出“No"

  根据题干描述,可以抽象出本题的核心目标:

小写只要26个字母在本字符串中均出现偶数次,则为美丽字符串。

#include <iostream>
#include <string>
using namespace std;
 
int main() 
{
	int num[26];
	for(int i=0;i<26;i++)
	{
		num[i]=0;
	}
	//初始化数组每个元素为0,分别统计每个小写字母出现的个数 
	
	string goal;
	cin>>goal;
	
	for(int i=0;i<=goal.length()-1;i++)
	{
		int temp=0;
		temp=goal[i]-97;
		num[temp]++;	
	} 
	
	/* 
	for(int i=0;i<=25;i++)
	{
		printf("%c的个数为:%d\n",(i+97),num[i]);
	}
	*/
	
	int doubt=1;
	//如果是完美字符串则为1 
	for(int i=0;i<=25;i++)
	{
		if(num[i]%2!=0)
		{
			doubt=0;
			//如果有一位不是偶数,则该字符串不为完美字符串 
			break;
		}
	}
	if(doubt==1)
		cout<<"Yes"<<endl;
	else
		cout<<"No"<<endl;

	return 0;
}

T1168——统计素数个数

具体题干看下图:

  • 蒜头君给定两个整数 X 和Y,输出两者之间的素数个数 (包括 X 和Y)。
  • 输入格式:两个整数X和Y (l < =X,Y <= 105) 。
  • 输出格式:输出一个整数,表示 X,Y 之间的素数个数 (包括 X 和Y)。
  • 提示信息:可能存在 X >=Y的情况;注意 1 不是素数

  详解如下:

#include <iostream>
using namespace std;

int PrimeNumber(int x)
{
	//定义一个函数,只需要完成对一个数是否为素数的判断
	//如果是0,则为素数,若为1则不为素数 
	for(int i=2;i<x;i++)
	{
		if(x%i==0){
			//能整除则说明不是素数 
			return 1;
			//返回1则代表不是素数 
			break;
		}		
	}
	return 0; 
}

int main() 
{		
	int x=0,y=0;
	int count=0;
	//输入范围和统计总数 
	cin>>x>>y;
	
	int temp=0;
	if(x>y)
	{
		temp=x;
		x=y;
		y=temp;	
	} 
	//保证x一定小于y 
	
	for(int i=x;i<=y;i++)
	{
		if(PrimeNumber(i)==0&&i!=1)
		//仔细看,1不是素数 
		{
			//cout<<i<<"是素数!"<<endl;
			count++;
			//如果符合条件则要加一 
		}		
	} 
	cout<<count<<endl;
	return 0;
}

T1160——甲流病人筛选

 

关于这道题还是比较简单的,没有涉及到算法,只需要对编程语言基础知识熟练掌握即可破解。

这里需要有两个重点:

1.存储病人的各项信息

此处我采用自定义结构体,定义一个病人类型的变量;对于不定长的n,我采用动态数组vector进行存储(当然,传统的面向对象和一维数组也可以实现这一功能)。

2.循环遍历判断

此处我采用的是STL的迭代器进行判断。

具体内容请看下列代码中的注释:

#include <iostream>
#include <vector>
#include <string>

using namespace std;

struct patient{
	string name;
	float tem;
	bool health;
	//结构体,定义一个病人类型的变量,当然也可以用面向对象的class 
}; 

int main(int argc, char** argv) 
{
	int n=0;
	cin>>n;
	//输入需要判断的总人数 
	
	vector<patient> V1;
	//定义一个病人类型的动态数组
	patient p;
	//同时声明一个临时储存的病人变量
	
	
	for(int i=1;i<=n;i++)
	{
		cin>>p.name>>p.tem>>p.health;
		V1.push_back(p);
		//设置循环,将全部病人存在数组中 
	}
	
	int count=0;
	//统计被筛选的甲流病人总数 
	
	for(vector<patient>::iterator it=V1.begin();it!=V1.end();it++)
	{
		//迭代器遍历整个数组
		if((*it).tem>=37.5&&(*it).health==1)
		{
			cout<<(*it).name<<endl; 
			//如果同时满足则输出当前病人的名字 
			//(*it)为解引用,it为迭代器,类似指针的用法 
			count++;
			//同时筛选总人数+1 
		}	 
	}
	cout<<count<<endl;
	
	return 0;
}

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

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

相关文章

Python学习笔记--自定义类型的枚举

三、自定义类型的枚举 但有些时候我们需要控制枚举的类型&#xff0c;那么我们可以 Enum 派生出自定义类来满足这种需要。通过修改上面的例子&#xff1a; #!/usr/bin/env python3 # -*- coding: UTF-8 -*- from enum import Enum, uniqueEnum(Month, (Jan, Feb, Mar, Apr, M…

相机内外参实践之点云投影矢量图

目录 概述 涉及到的坐标变换 深度值可视化 3D点云的2D投影实现 实现效果 参考文献 概述 Camer的内外参在多模态融合中主要涉及到坐标系变换&#xff0c;即像素坐标、相机坐标以及其他坐标系。这篇就针对点云到图像的投影与反投影做代码实践&#xff0c;来构建一张具有深度…

【2023CANN训练营第二季】——Ascend C算子开发进阶—Ascend C Tiling计算

了解Tiling基本概念 在这一小节中接触到了一个新的概念&#xff0c;叫Tiling计算&#xff0c;指的是在Ascend C 算子开发过程中&#xff0c;矢量的算子流程分为3个基本任务&#xff1a;CopyIn&#xff0c;Compute&#xff0c;CopyOut。CopyIn任务负责将Global Memory上的输入T…

Python 列表元素里面含有字典或者列表进行排序

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 示例1&#xff1a;列表里面含有列表进行排序 s [[1, 2], [100, 2], [33, 3], [25, 6]] s.sort(keylambda k: k[0]) print(s)结果&#xff1a; [[1, 2], [25, 6], [33, 3…

基于FPGA的PS端的Si5340的控制

1、功能 Si5340/41-D可以输出任意频率&#xff0c;当然有范围&#xff0c;100Hz1GHz。外部输入为24M或者4854M的XTAL&#xff0c;VCO在13500~14256Mhz之间&#xff0c;控制接口采用IIC或者SPI。 芯片架构图 2、IIC控制方式 3、直接上控制代码 使用米联客ZU3EG&#xff0c;将…

Learn runqlat in 5 minutes

内容预告 learn X in 5 系列第一篇. 本篇主要介绍进程时延统计方式和 rawtracepoint. runqlat "高负载场景下应用为何卡顿", "进程 A 为什么得不到调度". 当我们在工作生活中产生这样的疑问, 目标进程的调度时延是一个不错的观测切入点. runqlat 可以帮…

SQL必知会(二)-SQL查询篇(5)-用通配符进行过滤

第6课、用通配符进行过滤 LIKE&#xff1a;匹配文本 LIKE&#xff1a;针对未知值进行过滤。通配符搜索只能用于文本字段。 1&#xff09;百分号%通配符 %表示任何字符出现任意次数。 需求&#xff1a;找出所有以词 Fish 起头的产品 SELECT prod_id, prod_name FROM Product…

Linux-基础知识

1.快捷键 ctrlc 强制停止 ctrld 退出或登出 history 查看历史命令&#xff08;&#xff01;/ctrlr输入内容去匹配历史命令&#xff09; 光标移动快捷键 ctrla,跳到命令开头 ctrle,跳到命令结尾 ctrl键盘左键&#xff0c;向左跳一个单词 ctrl键盘右键&…

Python 使用tkinter的Menu菜单command参数与bind方法共用触发事件

用普通函数作为媒介&#xff0c;使用event_generate()方法模拟触发bind()事件来创建一个模拟的event对象&#xff0c;并将其传递给绑定的事件处理函数。 运行结果 示例代码 import tkinter as tk# 菜单事件 def menuEvent(event):print(event.x, event.y)label.config(textf鼠…

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

&#x1f984; 个人主页——&#x1f390;个人主页 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341;&#x1fa81;&#x1f341; 感谢点赞和关注 &#xff0c;每天进步一点点&#xff01;加油&#xff01;&…

SpringBoot集成easyexcel实现动态模板导出

添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-o…

补坑:Java的字符串String类(3):再谈String

不太熟悉字符串的可以看看这两篇文章 补坑&#xff1a;Java的字符串String类&#xff08;1&#xff09;-CSDN博客 补坑&#xff1a;Java的字符串String类&#xff08;2&#xff09;&#xff1a;一些OJ题目-CSDN博客 字符串创建对象 public static void main(String[] args) …

【pytorch深度学习】使用张量表征真实数据

使用张量表征真实数据 本文为书pytorch深度学习实战的一些学习笔记和扩展知识&#xff0c;涉及到的csv文件等在这里不会给出&#xff0c;但是我会尽量脱离这一些文件将书本想要表达的内容给展示出来。 文章目录 使用张量表征真实数据1. 加载图像文件2. 改变布局3. 加载目录下…

Nacos入门到运行-超详细~windwos

&#x1f4da;目录 ⚙️简介:⚡️Nacos下载⌛解压到文件⚙️配置信息☘️修改 application.properties ⛵运行程序☘️安全问题☄️程序出现问题查看方式 ⛳Nacos开启鉴权⚡️跳过Token获取数据⚓接口请求&#xff1a; ✍️结束&#xff1a; ⚙️简介: Nacos:正如官网说的,一个…

【JAVA学习笔记】 68 - 网络——TCP编程、UDP编程

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter21/src 网络 一、网络相关概念 1.网络通讯 1.概念:两台设备之间通过网络实现数据传输 2.网络通信:将数据通过网络从一台设备传输到另一台设备 3. java.net包下提供了一系列的类或接口&a…

Ansible命令使用

ansible ansible的命令 ansible命令模块Pingcommand 模块shell 模块copy 模块file 模块fetch 模块cron 模块yum 模块service 模块user 模块group 模块script 模块setup 模块get_url模块stat模块unarchive模块unarchive模块 ansible的命令 /usr/bin/ansible  Ansibe AD-Hoc 临…

Xilinx DDR3 MIG系列——Xiinx DDR3官方手册ds176_7series_MIS

本节目录 一、官方手册ds176_7series_MIS 1、DDR3功能支持 2、MIG官方手册资源 3、Vivado DDR3 MIG IP资源表的导出与查看本节内容 Xilinx官方提供了手册&#xff0c;以便硬件开发者设计DDR3的硬件电路&#xff0c;和FPGA开发者使用MIG官方ip核完成项目的逻辑开发。 针对Xilin…

类和对象(2):构造函数,析构函数

一、构造函数 1.1 概念 构造函数是一种特殊的成员函数&#xff0c;名字与类名相同&#xff0c;创建类类型对象时编译器自动调用——初始化对象&#xff0c;在对象整个生命周期内只调用一次。 PS: 1. 构造函数无返回值&#xff1b;2. 构造函数支持重载。 class Date { public:…

【沐风老师】3DMAX克隆修改器插件教程

3DMAX克隆修改器插件&#xff0c;它通过增量平移、旋转和缩放输入几何体来创建对象的副本。在某些方面&#xff0c;它类似于 3ds Max 的内置阵列工具&#xff0c;但有一个主要优点 -克隆是完全参数化的&#xff0c;因此您可以随时更改重复项的数量及其分布。其他功能包括随机变…

Yum配置、相关命令和常见问题

搭建光盘源 将系统盘读取出来&#xff0c;找到系统盘下存放软件包的目录 2.配置yun仓库 输入命令进入仓库编辑 #必须以.repo结尾 :wq 回车保存退出 3.命令行输入yum repolist 查看yum仓库 配置硬盘源 1.将硬盘源拷贝到目录&#xff0c;或者挂载到目录 2.指定repo文件baseu…