【蓝桥杯选拔赛真题53】C++对折纸张 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解

本文主要是介绍【蓝桥杯选拔赛真题53】C++对折纸张 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

C++对折纸张

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、推荐资料


C++对折纸张

第十四届蓝桥杯青少年创意编程大赛C++选拔赛真题

一、题目要求

1、编程实现

现要对一张纸张进行反复对折,纸张的单页厚度为0.2毫米,请问最少对折几次后,纸的厚度超过N毫米(N为正整数,1<N<1000)。

2、输入输出

输入描述:输入一个正整数N(1<N<1000)

输出描述:只有一行,一个整数,即纸张最少对折几次后,纸的厚度超过N毫米(大于N毫米)

输入样例:

2

输出样例:

4

二、算法分析

  1. 从给定题目的初步分析可以看出,题目难度不大,稍微有点繁琐
  2. 我们假定折叠一次,就是0.4毫米,折叠2次,就是0.8毫米,折叠3次,就是1.6毫米...
  3. 所以可以得出规律,折叠n次,厚度就是0.2 乘以 2的n次方

三、程序编写

#include<iostream>
#include<cmath>
using namespace std;
int main()
{int n,cnt = 0;float res;cin >> n;do{cnt ++ ;res = 0.2 * pow(2,cnt);}while(res < n);cout << cnt << endl;
}

四、程序说明

  1. 首先需要导入输入输出流头文件
  2. 接着再次导入数学函数头文件
  3. 然后是引入std命名空间中的所有成员到当前的程序中,这样在当前的程序中就可以直接使用 std 命名空间中的所有成员,而不需要使用的时候在成员前面加上(std::)前缀
  4. 接着声明程序的入口,也就是主函数(主函数在一个程序中只允许出现一次)
  5. 根据题目要求声明一个整形变量n和cnt(n表示折叠厚度,cnt表示折叠次数),同时声明一个浮点数变量res(表示折叠后的纸张厚度)
  6. 接着利用do-while循环,每次折叠一次,计算折叠后的厚度:0.2*pow(2,cnt),并判断是否小于输入的厚度n,是就继续循环,否则超过输入厚度,结束循环
  7. 最后利用输出流对象cout,输出折叠次数
  8. 最后返回0,程序结束

 本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102

五、运行结果

24

六、考点分析

难度级别:容易,这题相对而言还是比较简单的,具体主要考查如下:

  1. 充分掌握变量的定义和使用
  2. 学会输入流对象cin的使用,从键盘读入相应的数据
  3. 学会for循环的使用,在确定循环次数的时候推荐使用
  4. 学会do-while循环的使用,在不确定循环次数的时候推荐使用
  5. 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
  6. 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
  7. 学会pow函数的使用,返回某个数的次方运算结果
  8. 掌握输出流对象cout的使用,与流插入运算符 << 结合使用将对象输出到终端显示
  9. 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
  10. 充分掌握变量定义和使用、分支语句、循环语句和简单算法知识的使用及输入输出的用法

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

七、推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

这篇关于【蓝桥杯选拔赛真题53】C++对折纸张 第十四届蓝桥杯青少年创意编程大赛 算法思维 C++编程选拔赛真题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

详解C++中类的大小决定因数

《详解C++中类的大小决定因数》类的大小受多个因素影响,主要包括成员变量、对齐方式、继承关系、虚函数表等,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录1. 非静态数据成员示例:2. 数据对齐(Padding)示例:3. 虚函数(vtable 指针)示例:4. 继承普通继承虚继承5.

C++中std::distance使用方法示例

《C++中std::distance使用方法示例》std::distance是C++标准库中的一个函数,用于计算两个迭代器之间的距离,本文主要介绍了C++中std::distance使用方法示例,具... 目录语法使用方式解释示例输出:其他说明:总结std::distance&n编程bsp;是 C++ 标准

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa