蓝桥杯复习总结

蓝桥杯复习总结

1.最大公约数

int gcd(int a,int b){
    if(b==0) return a;
    else return gcd(b,a%b);
}
int gcd(int a,int b){
    return a%b==0?b:gcd(b,a%b);
}

2.最小公倍数

最小公倍数=两数的乘积/最大公约(因)数

最保险的写法
   a/gcd(a,b)*b

3.闰年的判断

首先明确  什么是闰年?
1、能被4整除,但不能被100整除;
2、能被400整除;
  bool isLeapYear(int year){
    return (year%4==0&&year%100!=0)||year%400==0;
}
闰年有366天,2月有29天
平年有365天,2月有28

4.素数判断

 bool IsPrime1(int sum)
 {
     for(int j=2;j*j

5.visual studio code

gcc(g++) 需要编译的源文件(test.cpp) -o 生成的exe文件(test.exe)

6.自写全排列函数

#include
#include
using namespace std;
void Permutation(int a[],int start,int end){//end为数组的长度
    if(start==end){
        for(int i=0;i

7.对于含有重复字符的字符串

8.bfs代码框架

while queue 非空:
	node = queue.pop()
    for node 的所有相邻结点 m:
        if m 未访问过:
            queue.push(m)              

9.在c/C++中关于输入的一些事

  • 在scanf中,除了char数组整个输入情况不用加入&之外,其他类型都需要加&;
scanf("%s",str);
  • 对于像时间22:20:45这种输入可以像这样输入:
scanf("%d:%d:%d",&hh,&mm,&ss);
理解:scanf的双引号内的内容其实是整个输入,只不过把数据换成他们对应的格式符
  • 如果输入”3 4“这种用空格隔开的两个数字,两个%d可以不用隔开
原因:除了%c之外,scanf对其他格式符的输入是以空白符为结束标志,%s以空格和换行为结束标志
  • getchar()的使用
记公式
scanf();
getchar();
gets();
  • 输入带有空格的字符串用gets()函数,输出可以用puts();

  • string类的输入和输出:

    getline(cin,str);
    cout<

    10.关于devC++调试时"program received signal,Unkown signal"的报错

    • 你可能在cpp文件下用scanf输入数据,最好是用cin输入数据

11.关于Vscode调试集成终端输入无响应,最终解决方案externalCansole:true;

12.pow()的精度问题

  • 在使用pow函数时,底数必须是常量(double型),结果才不会出现偏差。

pow()函数的精度问题 - someblue - 博客园 (cnblogs.com)

13.自写pow函数

int pow(int a,int b){
    if(b==0) return 1;
    if(b%2!=0) return pow(a,b-1)*a;
    else {
        int m=pow(a,b/2);
        return m*m;
} 
}

14.c++关于字符串的分割

#include
#include
#include
using namespace std;
int main(){
    string s;
    cout<<"输入一个字符串"<>s1;cout<

14.关于stdio.h与cstdio的解释

我们习惯在C语言中使用#include,在C++中使用#include。

其实是这样的,因为stdio.h是早期C语言的头文件,C++是兼容C的语法的,而大部分人在从C转到C++后总会忘不掉C语言中的一些标识符,比如说printf()函数。为了在C++中使用C语言标识符的同时规范命名空间(因为stdio.h的命名空间是全局空间,而C++的标准程序库的命名空间是std),他们将C语言的标识符进行了重写,并将重写的标识符放入std命名空间中,这样就诞生了cstdio。
而根据C++中的语法舍弃了头文件为.h的后缀,所以现在我们直接在C++中使用#include即可。

变化规则:C语言中的头文件去掉后缀.h,在前加上一个字母c即可。比如string.h,现在是cstring。在前面加一个字母c是表示这个头文件是重写C语言头文件得到的。

总结一句:stdio.h为C语言头文件,cstdio为c++文件,其他C语言头文件在.cpp文件下使用同理,不需要使用using namespace std;

15.for循环语句执行循序

蓝桥杯复习总结_第1张图片

总结先判断,在执行循环主体语句,再执行表达式3

16.返回数组长度c/C++

#define GET_ARRAY_LEN(array,len) {
len = (sizeof(array) / sizeof(array[0]));
}

17.赛后总结

1.时间分配问题
2.暴力边界问题
差距很大,还要练,下次再来

你可能感兴趣的:(笔记,简单应用,c++)