[学习笔记-C++篇]day10 标准库-实例

努力时毫不质疑,结束时绝不留恋。
今天开始就集中刷题了。初步计划50+100+针对训练。
感谢大佬几款优秀的支持C、C++在线编译器


stage1——10天入门阶段

教程网站:C++ 教程;九章算法课-免费试听
在线编译器:compile c++ gcc online
刷题网站:阶段1第一关:基本数据类型

day10 planA
教程over
教程完成度100%
(刷题进度独立另一个博客)


Q&A

  • 1.标准库
  • 2.有用资源
  • 3.实例
    • 3.1 查看变量大小
    • 3.2 判断元音辅音
    • 3.3 求一元二次方程的根
    • 3.3 创建三角形
    • 3.4 最大公约数
    • 3.5 最小公倍数
    • 3.6 猴子吃桃

1.标准库

分为标准函数库 (由通用的、独立的、不属于任何类的函数组成,函数库继承自 C 语言)和面向对象类库( 这个库是类及其相关函数的集合)
[学习笔记-C++篇]day10 标准库-实例_第1张图片
[学习笔记-C++篇]day10 标准库-实例_第2张图片

2.有用资源

看菜鸟。

3.实例

简单过一遍。

3.1 查看变量大小

int a;
sizeof(a);

之前求数组变量个数也用到过
int balance[5] = {1000, 2, 3, 17, 50};
int sizeb = sizeof(balance)/sizeof(balance[0]);

3.2 判断元音辅音

主要明确元音概念(aeiou),注意大小写都要判断

3.3 求一元二次方程的根

求根公式,在这里插入图片描述
主要判断判断式是否大于等于0或者小于0,则根结果不同:
[学习笔记-C++篇]day10 标准库-实例_第3张图片
语句看菜鸟。

3.3 创建三角形

一般直角三角形比较简单,等腰的话要注意一下前面的空格输入。例子主要是采用cout来控制输出量。

比如等腰三角形,要求n行,那么每行的字符需要2*n-1个;若还需要居中,则每行前需要额外输入空格n-i个(i是行号);每个字符输出为"* "

3.4 最大公约数

假设比较2数,一般思路,找到较小的那个数,逐次减1,用两个数分别除结果无余数。

但下面是另一种思路。参考获取两个数得最大公约数
辗转相减法

#include 
using namespace std;
 
int main()
{
    int n1, n2;
 
    cout << "输入两个整数: ";
    cin >> n1 >> n2;
    
    while(n1 != n2)
    {
        if(n1 > n2)
            n1 -= n2;
        else
            n2 -= n1;
    }
 
    cout << "HCF = " << n1;
    return 0;
}

辗转相除法

1.大数%小数==0,小数为最大公约数
2.1步不为0,把小数赋值给大数,余数赋值给小数,重复1-2
3.直到余数为0,最大公约数为此时的除数

3.5 最小公倍数

找较大的数,看能否整除2数,不行就加1,直到能整除2个数。

另一思路:先找最大公约数,然后得到最小公倍数=(两数乘积)/最大公约数

3.6 猴子吃桃

题目:一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个;后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。

题解:会陷入一个思维圈,就是不断求解每天吃了多少个,但已知量是最后一天剩余多少个,所以在推算的时候要以求解每天余量为主。

那么第1天剩余x/2-1,把余量赋值给x,那么每天都余x/2-1,第9天余x/2-1=1。然后注意求8次后是第1天的余量,还要再求一次。

#include 

using namespace std;

int main()
{
    int x=1;
    int y;
    
    for(int i=1;i<10;i++)
    {
        y=x;
        x=2*(y+1);
    }
    
    cout << "第1天数目:" << x << endl;
    return 0;
}

注意,推导公式的时候要从现有量去推。

你可能感兴趣的:(C++篇,c++,学习,开发语言)