努力时毫不质疑,结束时绝不留恋。
今天开始就集中刷题了。初步计划50+100+针对训练。
感谢大佬几款优秀的支持C、C++在线编译器
stage1——10天入门阶段
教程网站:C++ 教程;九章算法课-免费试听
在线编译器:compile c++ gcc online
刷题网站:阶段1第一关:基本数据类型
day10 planA
教程over
教程完成度100%
(刷题进度独立另一个博客)
1.标准库
分为标准函数库
(由通用的、独立的、不属于任何类的函数组成,函数库继承自 C 语言)和面向对象类库
( 这个库是类及其相关函数的集合)
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,则根结果不同:
语句看菜鸟。
3.3 创建三角形
一般直角三角形比较简单,等腰的话要注意一下前面的空格输入。例子主要是采用cout
来控制输出量。
比如等腰三角形,要求n
行,那么每行的字符需要2*n-1
个;若还需要居中,则每行前需要额外输入空格n-i
个(i
是行号);每个字符输出为"* "
。
3.4 最大公约数
假设比较2数,一般思路,找到较小的那个数,逐次减1,用两个数分别除结果无余数。
但下面是另一种思路。参考获取两个数得最大公约数
辗转相减法
#include <iostream>
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 <iostream>
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;
}
注意,推导公式的时候要从现有量去推。。