各种知识点
最大公约数和最小公倍数的乘积就是原两个数的积
i=j<<1 等价于 i=2*j i=j>>1 等价于 i=j/2 i=j|1 等价于 i=j+1
有一个数组,现在要求输出从小到大的数的序号。有三种方法,第一个是结构体法,结构体中一个元素放序号,一个元素放该序号对应的数字。
这样结构体就按照time的大小进行排序了,然后输出num第二种方法是核心在这两句,根据数字的大小直接将序号进行排序,然后再输出序号。第三种方法是冒泡。在交换数字的同时交换序号。
double a; printf("%xf\n", a);这样就会输出x位小数。 cout<<endl; 换行。 cout<<“;;” 是输出;; 而不是cout<<' ;;'是双引号不是单引号。
如果a有小数部分,i=int(a)就是向下取整,i=int(a)+1是向上取整。
l=strlen(a) 求字符串a的长度 想输入a字符串,直接cin>>a即可。
char a[10001];long long s[10001];
l=strlen(a);//求char型字符串的长度
for(i=0;i<l;i++)
{
s[i]=a[i];//a是字符,s是数组,这句代码把a字符的ascii码存入s
}
`````
for(i=0;i<l; i++)
{
a[i]=s[i]; //将处理后的数组s转化为字符再存入a
cout<<a[i];//强制转化并输出
}
printf ("%.2f", a) 输出两位小数
printf ("%9.2f ", a) 表示输出场宽为9的浮点数, 其中小数位为2, 整数位为6
struct asd{
int s,e;
double b;
}a[101];
bool cmp(asd x,asd y)
{
return x.b>y.b;
} 用到结构体的函数必须要出现在结构体之后,不然会编译失败。
判断 a是否是* :if( a == ' * ' ) 注意是单引号不是双引号。
如果输入是n个字符串 可以这么输入。a[j][0] 表示的是第j个字符串的第0个元素。
数组初始化 :memset(b,0,sizeof(b));
数组A的长度:A.size()
a - A=32
bool isPalindrome(int x) { if(x<0) return false; if(x>=0&&x<=9) return true; else { vector<int> a(100,0); int i=0; while(x) { a[++i]=x%10; x=(x-x%10)/10; } for(int j=1;j<=i/2;j++) { if(a[j]!=a[i+1-j]) return false; } return true; } }
sort(nums.begin(),nums.end()); 对sum数组排序
vector<vector<int> >res; 建立一个int型数组res
push_back()函数的用法 函数将一个新的元素加到vector的最后面,位置为当前最后一个元素的下一个元素
vector的成员函数pop_back()可以删除最后一个元素.
vector<vector<
int
> > A 创建一个二维数组A
vector<
int
> A 创建一个一维数组A
for (auto p : paths)
vis.insert(p[0]);
等价于:
for (int i=0;i<path.size();i++)
vis.insert(paths[i][0]);
Strassen矩阵乘法