C语言牛客网刷题

2024-03-22 02:28
文章标签 语言 牛客 网刷题

本文主要是介绍C语言牛客网刷题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.最大公约数和最小公倍数的组合问题

(1)在调试的过程中涉及到很大的数据,我们我们在定义变量的时候定义为long long类型

(2)这个里面我们自定义了max2用来求最大公约数,min2用来求最小公倍数

(3)我们核心是要求出最大公约数,有了最大公约数和2个原始数据,我们可以让2个数的乘积除以最大公约数,就可以得到最小公倍数;

(4)在求出最大公约数的过程中,我们使用辗转相除法,如果a%b的结果不是0,就把b的值赋值给a,把余数赋值给b,直到最后的余数是0,我们最后返回b的值,就是最大公约数。

2.改数字游戏

这个游戏还是利用循环,取余数,除法操作,不断的累加等一系列的方法进行解决实际问题

这个题目时输入数据,判断他的每个位上面的奇偶情况,但是我们要注意的是不同的数位,他所代表的数量级是不相同的;

(1)这个里面我们设置b为最后的输出结果,如果这个数位上面的数据是偶数,无论他的位数多高,都是0,这个地方我们使用if循环,满足奇数的条件就乘上对应的数量级,不满足就不进行循环里的部分,我们使用n来控制数量级,无论是否满足条件,都要进行乘10操作,因为相邻的数位之间的差距是10这个量级;

(2)我们的n%2==1既是判断这个数是否为奇数,也是判断这个数据的最低位是不是奇数,如果是就加上1,不是我们就要判断比他高一位的数据,这个时候我们先要把i*10,这个将来要乘上10位上的数,进行除10,把已经判断的舍去,这样十位就变成了最低位,一次循环下去。

3.判断输入的字符是否为字母(包括大小写)

在牛客网上面,有两道题目都是判断这个输入的字符是否是字母,这个让我很意外,认为一个相同的知识点为什么要考察2遍呢,向老师请教了很长时间才发现这个里面暗藏玄机,发现自己以前并不注意的细节,请听我细细道来:

我们首先来认识一下这个函数,可以用来判断输入的字符是否为大小写,如果是大写或者小写,就会返回true(上面写的返回值是int,实际上是没有区别的,因为C语言里面1代表true,0代表假,这两者本质上都表示一个意思),如果既不是大写,也不是小写就会返回false;

这个库函数的使用需要包含我们的头文件<ctype.h>这样就可以进行判断;

(1)单个输入

下面的这个题目是牛客网上面我做的第一道关于判断输入字符是否为字母的编程题目:

这个代码的意思就是如果是字母,就会输出yes,否则就会输出no;

当然,我们也可以像下面的这样写的更容易理解一些:

(2)多组循环输入

我们首先看一下我的错误案例:

这段代码错误的原因就是因为无法过滤掉里面的空格所以他把空格也判断了一遍并且输出了,因此我们要想办法解决输入的字符之间的空格的过滤;

我在这里提供2种解决方案:

第一种就是在输入的语句里面的%c的前面加上空格,就可以过滤掉无用的空格,其实我们自己可以进行尝试,这个空格无论是加在%c的前面还是后面,无论是加一个还是加多个,都是可以实现这个过滤的效果的,我们任选一种写法实现这个功能;

还有一种写法就是scanf语句里面的内容正常写,我们加上一句getchar(),这种做法同样可以实现过滤掉空白字符的功能;为什么会这样呢?我们有必要重新认识一下scanf和getchar的特殊用法:

对于scanf这个库函数,我们首先要明确,scanf遇到空格与回车时,会结束读取,一般scanf读走输入数据后,会留下如\n等的字符,如果我们还要再次调用scanf的话,缓冲区中还有\n,此时scanf不等我们输入数据,就把\n读走了,从而不能达到我们的目的。下面看这个例子:

这个时候,如果我们输入2个字符,字符之间有空格,我们就无法输出空格后面的字符;

加上getchar()之后,这个问题就可以被解决了,由此可见getchar()可以过滤空格;那这道题目的循环判断就不难理解了。

这篇关于C语言牛客网刷题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834335

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.