目录
整数逆置
如7234变为4327
int Reversed(int n){
int x,reversed_n=0;
while(n!=0){
x=n%10;
reversed_n=reversed_n*10+x;
n=n/10;
}
return reversed_n;
}
数组逆置
将数组{1,2,3,4,5,6}逆置为{6,5,4,3,2,1}
void Reverse(int a[],int l,int r){
while(l<r){
int temp;
temp=a[l];
a[l]=a[r];
a[r]=temp;
l++;
r--;
}
}
利用数组逆置的性质,然后我们知道(A-1B-1)-1 = BA ,可以用这个性质实现循环左移函数
cpp
void Converse(int a[],int num,int len){ //num是移动位数,len是数组长度
Reverse(a,0,num-1); //A逆
Reverse(a,num,len-1); //B逆
Reverse(a,0,len-1); //然后AB整体逆就能得到BA
}
//主函数
int a[8]={1,2,3,4,5,6,7,8};
Converse(a,3,8); //循环左移三位
矩阵转置
以对角线为对称交换两个元素
cpp
int temp;
for (i = 0; i < n; i++) { //两个for循环遍历上三角元素
for (j = i + 1; j < n; j++) { //上三角与下三角交换
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}