万能头文件
#include<iostream>
using namespace std;
printf输出函数
cout的相关输出函数记不住,统一用c的,况且在语法逻辑无法改进但运行超时的时候,可以尝试把所有cin、cout改为printf、scanf。
简单来说:%[-][m].nf ,m表示占几个位置,n表示保留小数点后几位,“-”负号表示靠左对齐
int a;
printf("%4d",a);//每个数据占4列
printf("%05d",t);//注意以0补齐
printf("%d: %c\n",n,k == 1 ?'U':'D');
double sum;
printf("%.5f\n",sum);//换行,保留小数点5位
printf("%.2f ",sum);//每个浮点数需保留到小数点后2位
printf("%.6f",sum);//结果保留6位小数
printf("Fib(%d)=%ld, count=%d\n", n, f, cnt);//符号和空格原样输出
string常用方法
回文串
string str,s1;
cin >> str;
s1 = str;
reverse(str.begin(),str.end());
int n = str.length();
if(str == s1){
cout<<"YES, ";
}
else cout<<"NO, ";
cout<<n<<endl;
int len1 = str.size();
int len2 = str.length();
string str3 = str1 + str2;
if(str1 == str2)//比较可以直接用符号
string str2 = str.substr(3,2);
//从字符串的 pos 位置开始(若不指定 pos 的值,则默认从索引 0 处开始),查找子字符串
//如果找到,则返回该子字符串首次出现时其首字符的索引;否则,返回 string::npos:
//string.rfind() 与 string.find() 方法类似,只是查找顺序不一样, string.rfind() 是从指定位置 //pos (默认为字符串末尾)开始向前查找,直到字符串的首部
str.find("qiandao");
//如果不用getline,不会读入空格
string str;
getline(cin, str);
数组
排序
bool compare(double a,double b){
return a>b;//降序
}
sort(num,num + a,compare);
tip:未知输入行数格式 while(cin>>n)
ASCII码 小写更大,差值直接用'a'-'A'
还差:二分、递归、散列、gcdlcm、素数&质因子分解、stl常用数据结构和常用函数