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类的输入和输出:
10.关于devC++调试时"program received signal,Unkown signal"的报错getline(cin,str); cout<
- 你可能在cpp文件下用scanf输入数据,最好是用cin输入数据
- 在使用pow函数时,底数必须是常量(double型),结果才不会出现偏差。
13.自写pow函数pow()函数的精度问题 - someblue - 博客园 (cnblogs.com)
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 其实是这样的,因为stdio.h是早期C语言的头文件,C++是兼容C的语法的,而大部分人在从C转到C++后总会忘不掉C语言中的一些标识符,比如说printf()函数。 为了在C++中使用C语言标识符的同时规范命名空间(因为stdio.h的命名空间是全局空间,而C++的标准程序库的命名空间是std),他们将C语言的标识符进行了重写,并将重写的标识符放入std命名空间中,这样就诞生了cstdio。 变化规则:C语言中的头文件去掉后缀.h,在前加上一个字母c即可。 比如string.h,现在是cstring。 在前面加一个字母c是表示这个头文件是重写C语言头文件得到的。 欢迎分享,转载请注明来源:内存溢出
而根据C++中的语法舍弃了头文件为.h的后缀,所以现在我们直接在C++中使用#include即可。
15.for循环语句执行循序
总结一句:stdio.h为C语言头文件,cstdio为c++文件,其他C语言头文件在.cpp文件下使用同理,不需要使用using namespace std;
16.返回数组长度c/C++
总结先判断,在执行循环主体语句,再执行表达式3
17.赛后总结
#define GET_ARRAY_LEN(array,len) {
len = (sizeof(array) / sizeof(array[0]));
}
1.时间分配问题
2.暴力边界问题
差距很大,还要练,下次再来
评论列表(0条)