计蒜客详解合集(2)期

目录

T1126——单词倒排

T1617——地瓜烧

T1612——蒜头君的数字游戏

T1488——旋转单词

T1461——校验信用卡号码

T1437——最大值和次大值


T1126——单词倒排

超级水的一道题,和T1122类似但更简单,分割后逆序输出即可~

  • 编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
  • 输入格式:输入为一个字符串 (字符串长度至多为 100)。
  • 输出格式:输出为按要求排序后的字符串。

#include <iostream>
#include <string>
#include <vector>
using namespace std;
 
int main(int argc, char** argv) {
	
	string S;
	vector<string> V;
	
	getline(cin,S);
	string temp;
	
	//分割单词 
	for(int i=0;i<=S.size()-1;i++)
	{
		temp+=S[i];
		if(S[i]==' '||i==S.size()-1)
		//最后一个单词要有单独的操作 
		{
			V.push_back(temp);
			temp.clear();
		}	
	}
	
	//删除除了最后一个单词以外,末尾的空格 
	for(int i=0;i<V.size()-1;i++)
	{
		string temp=V[i];
		temp.erase(temp.size()-1);
		V[i]=temp;
	}
	
	for(int i=V.size()-1;i>=0;i--)
	{
		cout<<V[i]<<" ";
	}
 
	cout<<endl;

	
	return 0;
}

T1617——地瓜烧

 同样是水题,不解释~

  • 恭头君喜欢喝地瓜烧,刚开始他在小卖部买了  地瓜烧,已知 人空可以换一瓶地风烧,请帮他计算一下,最后能喝几瓶地瓜院。(小卖部不允许借商品)
  • 输入格式:行包括两个整数n,k (1< n,k <=108)。
  • 输出格式:输出一个整数,表示蒜头君最多能喝地瓜烧的瓶数。

#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,k=0;
	cin>>n>>k;
	
	int num1=n;
	int num2=n/k;
	cout<<(num1+num2)<<endl;
	
	return 0;
}

 

T1612——蒜头君的数字游戏

水题,太简单不解释,记得别把多余的0输入就行,由于没有明确的循环次数,本题用while循环更适合一些。

  • 蒜头君最近被要求参加一个数字游戏,要求他把看刊的一系列整数长度不一定,以0 结束,最多不过 100 个),记住了然后反着念出来表示结中的数字0就不要今出来了,这对蒜头君的那点记忆力来说实在是太难了,所以请你帮他偏程解决这个问题。
  • 输入格式:行内输入一系列整数 (大小在(1~10^9 之内) ,以0结束,用空格来分隔。
  • 输出格式:行内倒着输出这一系列整数,以空格间隔。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 

int main(int argc, char** argv) 
{
	int num=-1;
	vector<int> V;
	//初始化必备变量 
	while(num!=0)
	{
		cin>>num;
		V.push_back(num);
	}

	reverse(V.begin(),V.end());
	//翻转 
	
	for(vector<int>::iterator it=V.begin()+1;it!=V.end();it++)
		cout<<(*it)<<" ";
	cout<<endl;
	//从第二个下标开始迭代,去掉多余的0 
	
	return 0;
}

T1488——旋转单词

  • 今天的英语课,王老师为了复习以前学过的单词,提高学生的学习兴趣。想出了一个主意:读入 M组数据 ,其中每组数据一个单词(单长度 36 字个字符)和一个整数N(1~36),从该单词末位开始逐位相移到单词的开头。如果还没达到N倍  ,则再从末位未位开移,直到 N 为止,求称 N 位后的新单词,你能编程帮助贝贝最快完成任务吗?
  • 输入格式:文件共有2 x M +1行,第1行为 M,第2行开始为体数据,每一组数据有2行,第1行字串L,第2行为N.
  • 输出格式:共 M 行,每行为旋转后的字串。

如题,抽象本题的重点在于以下几点:

1.输入一个字符串并匹配一个专属的数字

2.将每一个字符串后n位按照原顺序前置

对于要点1,此处采用自定义类型压入vector解决;对于要点2,采用双循环遍历解决。

具体见代码:

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

struct yuansu{
	string s;
	int num;
	//自定义类型符合题意要求 
};
 
int main(int argc, char** argv) 
{
	vector<yuansu> V;
	int n=0;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		yuansu temp;
		cin>>temp.s;
		cin>>temp.num;
		V.push_back(temp);
	}
	//接受题干数据 

	vector<string> G;
	//G用来存放处理后的字符串 
	for(int i=0;i<=V.size()-1;i++)
	{
		string linshi;
		//临时的字符串 
		string goal=V[i].s;
		int n=V[i].num;
		int length=goal.size()-1;
		//获取当前元素的字符串和数字M,以及当前字符串的下标最大值 
		for(int j=length,k=1;k<=n;j--,k++)
		{
			//从最后一个字符开始操作,选取n个字符(即题干中的M) 
			linshi+=goal[j];
			//采用字符串的加法赋值 
		}
		reverse(linshi.begin(),linshi.end());
		//注意!由于字符串的加法是将新的字符加到最后面,所以此处先进行翻转使其符合题意 
		for(int p=0;p<=length-n;p++)
		{
			linshi+=goal[p];
			//将前length-n个不需要翻转的字符串补充进去 
		}
		G.push_back(linshi);
		//压入G中,进行下一组元素的操作 
	} 
	
	for(vector<string>::iterator it=G.begin();it!=G.end();it++)
		cout<<(*it)<<endl;
	//遍历G,得出答案 
	 
	return 0;
}

加入一个藏头诗版的测试用例:完美AC

T1461——校验信用卡号码

 如题,本题需要解决的本质就是多个字符串转换为整型数据的过程。主要的考点在于如下3个:

1.循环输入多个字符串并不间断

2.将字符串处理为整型数据

3.完成对整形数据的检验

上述三个要求通过STL可以很轻松地解决,具体做法写在了代码注释之中。

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
 
void vectorPrint(vector<int> T1)
{
	for(vector<int>::iterator it=T1.begin();it!=T1.end();it++)
		cout<<(*it)<<" ";
	//打印整型vector的方法,没有实际意义,仅仅用来调试	
} 
 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) 
{
	string temp;
	//定义临时目标字符串 
	while (cin>>temp)
	//当输入字符串时,循环就不停止,一直进入并计算 
	{
//		cout<<temp<<endl;
		vector<int> V;
		for(int i=0;i<=temp.size()-1;i++)
		{
			int t=temp[i]-48;
			//将字符串的每一位处理为int型的数据,并且压入int型的vector 
			V.push_back(t);
		} 
//		vectorPrint(V);
		reverse(V.begin(),V.end());
		//逆向操作后,从头开始按照奇数偶数位遍历。 
		int jishu=0,oushu=0,sum=0;
		for(int i=0;i<=V.size()-1;i+=2)
		{
			jishu+=V[i];
			//奇数位直接相加 
		} 
		for(int i=1;i<=V.size()-1;i+=2)
		{
			V[i]*=2;
			if(V[i]>=10)
				V[i]-=9;
			oushu+=V[i];
			//偶数位判断*2是否大于10,大于10需要减9 
		}
		sum=jishu+oushu;
		//求和后判断是否可以整除10,完杀 
		if(sum%10==0)
			cout<<"Pass"<<endl;
		else
			cout<<"Fail"<<endl;
	}
	return 0;
}

T1437——最大值和次大值

比较简单的题,用STL库可以大幅度降低代码复杂度:将int型的数字压入到vector中,调用sort实现从小到大排序,再采用reverse将其翻转为从大到小。第一个元素(最大值)首先输出,再遍历后面第一个与最大值不同的元素,其即为题干要求的次大值。

sort和reverse均在头文件“#include <algorithm>”中。

代码如下:

#include <iostream>
#include <vector>
#include <algorithm>

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;
	vector<int> V;
	
	for(int i=1;i<=n;i++)
	{
		int temp=0;
		cin>>temp;
		V.push_back(temp); 
	}
	
	sort(V.begin(),V.end());
	reverse(V.begin(),V.end());
	//从大到小排序 
//	for(vector<int>::iterator it=V.begin();it!=V.end();it++)
//		cout<<(*it)<<" ";
//	cout<<endl;
	int max=V[0];
	cout<<max<<endl;
	for(int i=1;i<=n-1;i++)
	{
		if(V[i]!=max)
		{
			cout<<V[i]<<endl;
			break;
		}	
	} 
	return 0;
}

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)

PCF8591数字电压表数码管显示 1.主要功能&#xff1a;讲解视频&#xff1a;2.仿真3. 程序代码4. 设计报告5. 设计资料内容清单&&下载链接资料下载链接&#xff08;可点击&#xff09;&#xff1a; 51单片机PCF8591数字电压表数码管设计( proteus仿真程序设计报告讲解视…

收藏!7个国内「小众」的程序员社区

技术社区是大量开发者的集聚地&#xff0c;在技术社区可以了解到行业的最新进展&#xff0c;学习最前沿的技术&#xff0c;认识有相同爱好的朋友&#xff0c;在一起学习和交流。 国内知名的技术社区有CSDN、博客园、开源中国、51CTO&#xff0c;还有近两年火热的掘金&#xff…

【Kurbernetes集群】Pod资源、Pod资源限制和Pod容器的健康检查(探针)详解

Pod资源 一、Pod概述1.1 Pod的定义1.2 一个Pod能包含几个容器&#xff1f;1.3 Pod的分类1.3.1 控制器管理的Pod1.3.2 自主式Pod1.3.3 静态Pod 1.4 Pod中容器的分类1.4.1 Pause容器1.4.2 初始化容器1.4.3 应用容器 1.5 Pod常见的状态 二、Pod中的策略2.1 镜像拉取策略2.2 Pod中容…

【计算机网络】HTTPS

文章目录 前言为什么会出现 HTTPSHTTPS 是如何进行加密的1. 对称加密非对称加密中间人攻击3. 引入证书 前言 前面我们学习了应用层中使用比较常见的 HTTP 协议&#xff0c;但是呢&#xff1f;在实际的使用中&#xff0c;浏览器和服务器之间的通信其实很少使用到 HTTP&#xff…

Google Firebase PHP实现消息推送

获取key的方法&#xff1a; 登录谷歌开发者后台 https://console.firebase.google.com/?hlzh-cn function firebaseNotice($title,$body){$token_arr[token1,token2]; //用户的firebasetoken列表$notify_msg ["notification" > ["title" > $title…

C++入门 1——命名空间,缺省参数

C入门 一.前言二.命名空间2.1命名空间的定义2.2命名空间的使用 三.C的输入&输出四.缺省参数4.1概念4.2缺省分类 五.函数重载5.1概念5.2函数重载条件及代码 六.引用6.1概念6.2引用特性6.3常引用6.4使用6.5引用和指针的区别和联系 七.内联函数7.1概念7.2特性 一.前言 今天就…

[ Linux Busybox ] nandwrite 命令解析

文章目录 相关结构体nandwrite 函数实现nandwrite 实现流程图 文件路径&#xff1a;busybox-1.20.2/miscutils/nandwrite.c 相关结构体 MTD 相关信息结构体 struct mtd_info_user {__u8 type; // MTD 设备类型__u32 flags; // MTD设备属性标志__u32…

(免费版?)CLion Nova 强势登陆 C 和 C++ 开发领域

系列文章目录 文章目录 系列文章目录前言一、CLion Nova二、目标三、优势和改进四、显著差异五、如何安装 CLion Nova六、分享您的反馈意见总结 阿纳斯塔西娅-卡扎科娃 2023 年 11 月 9 日 前言 今天&#xff0c;我们宣布推出免费的 CLion 早期预览版&#xff0c;它使用 ReSh…

400G OSFP SR8光模块最新解决方案

数字化时代&#xff0c;意味着网络速度、能效和成本成为数据中心和通信网络关注的焦点。为了满足这些需求不断催生和进化新的产品&#xff0c;因此在这一背景下400G OSFP SR8光模块最新解决方案成为了很好的助力。该方案不仅提高了网络速度&#xff0c;还实现了节能降耗&#x…

ARM 基础学习记录 / ARM 裸机编程

汇编程序调用 C 程序详情 在 C 程序和 ARM 汇编程序之间相互调用时必须遵守 ATPCS 规则&#xff0c;其是基于 ARM 指令集和 THUMB 指令集过程调用的规范&#xff0c;规定了调用函数如何传递参数&#xff0c;被调用函数如何获取参数&#xff0c;以何种方式传递函数返回值。 寄存…

95. 费解的开关

题目 思路 因为最优解是每个灯只操作一次所以顺序无所谓只要确定了第一行后&#xff0c;下面都可以确定当前灯不亮就操作它下面的格子即可点亮它我觉得这种方法是唯一不会互相干扰的方法还是不太理解… 代码 #include <cstdio> #include <cmath> #include <c…

2023最新版本 从零基础入门C++与QT(学习笔记) -1- C++输入与输出

&#x1f38f;说在前面 &#x1f388;我预计是使用两个月的时间玩转C与QT &#x1f388;所以这是一篇学习笔记 &#x1f388;根据学习的效率可能提前完成学习,加油&#xff01;&#xff01;&#xff01; 输入(代码如下方代码块) &#x1f384;分析一下构成 &#x1f388;…

Rocksdb LSM Tree Compaction策略

RocksDB读写简介 直接画图说明。这张图取自Flink PMC大佬Stefan Richter在Flink Forward 2018演讲的PPT&#xff0c;笔者重画了一下。 RocksDB的写缓存&#xff08;即LSM树的最低一级&#xff09;名为memtable&#xff0c;对应HBase的MemStore&#xff1b;读缓存名为block cac…

CV计算机视觉每日开源代码Paper with code速览-2023.11.8

精华置顶 墙裂推荐&#xff01;小白如何1个月系统学习CV核心知识&#xff1a;链接 点击CV计算机视觉&#xff0c;关注更多CV干货 论文已打包&#xff0c;点击进入—>下载界面 点击加入—>CV计算机视觉交流群 1.【基础网络架构】&#xff08;WACV2024&#xff09;SBCFo…

Vue3-ref函数、reactive函数的响应式

Vue3-ref函数、reactive函数的响应式 在这之前&#xff0c;先讲Vue2的响应式处理 Vue2原本使用的是Object.defineProperty的响应式处理方式 methods方法中的this.name指的是vm.namereturn的name属性在通过this.name的间接调用时&#xff0c;通过了Object.defineProperty响应式…

火山引擎公共云·城市分享会:共享云经验,一起向未来

数智化时代的来临&#xff0c;不仅激发了行业对云计算的资源需求&#xff0c;也重构了云计算的技术架构及产品布局&#xff0c;给业务场景带来更多可能性&#xff0c;让云计算成为企业走向高效治理的一剂“良方”。随着业务的多样化、复杂化&#xff0c;企业应该如何借助云计算…

极兔面试:微服务爆炸,如何解决?Uber 是怎么解决2200个微服务爆炸的?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 谈谈你的DDD落地经验&#xff1f; 谈谈你对DDD的理解&#x…

【ubuntu 快速熟悉】

ubuntu 快速熟悉 2.ubuntu桌面管理器3.ubuntu常见文件夹说明4.ubuntu任务管理器4.1 gnome桌面的任务管理器4.2 实时监控GPU4.3 top 命令 5.ubuntu必备命令5.1 .deb文件5.2 查找命令5.2.1 find文件搜索5.2.2 which查找可执行文件的路径5.2.3 which的进阶&#xff0c;whereis5.2.…

Linux学习教程(第一章 简介)2

第一章 Linux简介 四、类UNIX系统是什么鬼? 《三、UNIX和Linux的区别》中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX。 有人说,这个世界上只有两种操作系统: UNIX 和类 UNIX 操作系统;其它操作系统…

解决:Git报错same change IDs

当使用git review的时候&#xff0c;review失败&#xff0c;报错multi commit …same change ids。。 错误&#xff1a; same Change-Id in multiple changes 意思是说&#xff0c;有多个commit记录的change ids是相同的&#xff0c;这change id概念出现在gerrit&#xff0…