【C++题解】[2020普及组模拟题]wgy的JX语言

2024-02-29 03:30

本文主要是介绍【C++题解】[2020普及组模拟题]wgy的JX语言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

P a r t Part Part 1 1 1 读题

题目描述

w g y wgy wgy发明了 J X JX JX编程语言,在这种编程语言里,只有 + = += +=这个运算符,可以将某个变量的值增加。

现在输入 a a a b b b n n n,请问仅使用 a a a b b b两个变量来进行 + = += +=运算,最少多少次能够严格超过 n n n的值。

只能使用 a + = b a+=b a+=b,或者 b + = a b+=a b+=a不能使用 a + = a a+=a a+=a b + = b b+=b b+=b

输入格式

三个整数 a a a b b b n n n(三个数都不超过 1 0 9 10^9 109

输出格式

一个整数,代表最少步数

输入样例1

1 2 3

输出样例1

2

输入样例2

5 12 14

输出样例2

3

数据范围与提示

对于 100 % 100\% 100%的数据, a , b , n ≤ 1 0 9 a,b,n≤10^9 a,b,n109

P a r t Part Part 2 2 2 思路

本题算是作者在暑假期间写的最简单的题了,实际上本题也就一个难点,我们举例看看:

假设 a = 1 a=1 a=1 b = 2 b=2 b=2 n = 30 n=30 n=30,我们可以列表解决这个问题(见下图)
cmd-markdown-logo
我们发现,只需要做到小数+大数,依次相加,可以保证数的大小,再定义一个变量记录最小步数就行了。也就是如下代码:

while(a<=n&&b<=n){//保证两数都不大于n//判断a、b的大小,进行计算if(a<b)a+=b;else b+=a;s++;//最小步数的记录
}

然后我们再加上定义、输入和输出就可以啦!

小tip:大家可以先根据思路,写一下代码哦!

P a r t Part Part 3 3 3 代码

#include<bits/stdc++.h>
using namespace std;
int a,b,n,s;
int main(){cin>>a>>b>>n;while(a<=n&&b<=n){if(a<b)a+=b;else b+=a;s++;}cout<<s;return 0;
}

听完后,是不是觉得很简单呢?赶快自己去试一下吧!!!

这篇关于【C++题解】[2020普及组模拟题]wgy的JX语言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/szxguagua0807/article/details/132266834
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/757447

相关文章

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

C++中NULL与nullptr的区别小结

《C++中NULL与nullptr的区别小结》本文介绍了C++编程中NULL与nullptr的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编... 目录C++98空值——NULLC++11空值——nullptr区别对比示例 C++98空值——NUL

C++ Log4cpp跨平台日志库的使用小结

《C++Log4cpp跨平台日志库的使用小结》Log4cpp是c++类库,本文详细介绍了C++日志库log4cpp的使用方法,及设置日志输出格式和优先级,具有一定的参考价值,感兴趣的可以了解一下... 目录一、介绍1. log4cpp的日志方式2.设置日志输出的格式3. 设置日志的输出优先级二、Window

Go语言中make和new的区别及说明

《Go语言中make和new的区别及说明》:本文主要介绍Go语言中make和new的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1 概述2 new 函数2.1 功能2.2 语法2.3 初始化案例3 make 函数3.1 功能3.2 语法3.3 初始化

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁