zoukankan      html  css  js  c++  java
  • 不借助多余参数也可交换两个参数(c++,swap函数)

    借助a^a=0异或属性

    【示例代码1——swap函数调用】

    #include<stdio.h>
    void swap(int &a,int &b){
    	a = a ^ b;
    	b = a ^ b;
    	a = a ^ b;
    }
    int main(){
    	int a = 1;
    	int b = 2;
    	swap(a, b);
    	printf("a,b=%d,%d",a,b);
    	return 0;
    } 
    

    【运行结果】

    【示例代码2——冒泡排序】

    #include<bits/stdc++.h>
    int main()
    {
    	int arr[10] = {1, 33, 45, 5, 40, 67, 37, 51, 70, 12};
    	int i, j;
    	for(i=0; i<10; i++){
    		for(j=i+1; j<10; j++){
    			if(arr[i] > arr[j]){
    				arr[i] = arr[i] ^ arr[j];
    				arr[j] = arr[i] ^ arr[j];
    				arr[i] = arr[i] ^ arr[j];
    			}
    		}
    	}
    	for(i = 0;i < 10; i++){
    		printf(" %d",arr[i]);
    	}
    	printf("
    ");
    	return 0;	
    }
    

    【小栗子】

    常可以做一个简单的加密工具!

    1)文件A

    2)卖家使用密钥加密文件A: A^X

    3)买家收到加密文件A^X与密钥X

    4)买家解密文件A: A^X ^X=A

  • 相关阅读:
    java跳过构造方法新建对象
    java实现类似qq的窗口对聊
    NoSql的产生
    C语言跳出循环
    C语言for循环
    C语言while语句
    C语言条件运算符
    C语言switch语句
    C语言逻辑运算符
    C语言关系运算符
  • 原文地址:https://www.cnblogs.com/lastk/p/12766520.html
Copyright © 2011-2022 走看看