c#交换变量的几种方法(笔试之一)

大家很熟悉知道,交换变量经常的使用的一种方法是使用第三个变量,也符合正常人的思维逻辑,但是还有其他的一些方法来实现,但是有点“偏门”,记住就好了。下面就列举这几种方法。

第一种方法,会用到参数的方法再来修稿。

 1 using System;
 2 namespace Exercise
 3 {
 4     class Program
 5     {
 6         private static void Main(string[] args)
 7         {
 8             int num1 = 10;
 9             int num2 = 5;
10             int temp = num1;
11             num1 = num2;
12             num2 = temp;
13             Console.WriteLine("num1={0},num2={1}",num1,num2);
14             Console.ReadKey();
15         }
16     }
17 }

第二种方法,用到数轴上点到点之间的距离的使用,num2-num1;以下图示通过普通的加减运算来实现;

 1 using System;
 2 namespace ConsoleApplication1
 3 {
 4     class Program
 5     {
 6         static void Main(string[] args)
 7         {
 8             int num1 =3;
 9             int num2 = 7;
10             num1 = num2 - num1;//算出距离 并赋值给num1,被赋值的变量值已经变成了距离,另一变量没有变。num1被赋值成距离。 num1=4,num2=7
11             num2 = num2 - num1;//num2减去距离,就等于num1;此时num1还没有交换成num2;完成“num2”的交换成num1。num1=4 num2=3
12             num1 = num2 + num1;//被赋值成的num1值的num2加上距离再赋值成num1,完成num1的被交换成。num1=7,num2= 3
13             Console.WriteLine("num1={0},num2={1}", num1, num2);
14             Console.ReadKey();
15         }
16     }
17 }

第三种方法,是位运算,异或,理解:先异或存num1点的话,第二步必须求num2,第三步剩下num1了。 格式和数轴类似,只要把+ -号全变成^就实现。

 1 using System;
 2 namespace ConsoleApplication1
 3 {
 4     class Program
 5     {
 6         static void Main(string[] args)
 7         {
 8             int num1 =3;
 9             int num2 = 7;
10             num1 = num2 ^ num1;//算出距离 并赋值给num1,被赋值的变量值已经变成了距离,另一变量没有变。num1被赋值成距离。 num1=4,num2=7
11             num2 = num2 ^ num1;//num2减去距离,就等于num1;此时num1还没有交换成num2;完成“num2”的交换成num1。num1=4 num2=3
12             num1 = num2 ^ num1;//被赋值成的num1值的num2加上距离再赋值成num1,完成num1的被交换成。num1=7,num2= 3
13             Console.WriteLine("num1={0},num2={1}", num1, num2);
14             Console.ReadKey();
15         }
16     }
17 }

查看大神博客,自己细节把握。

时间: 2024-10-23 10:20:43

c#交换变量的几种方法(笔试之一)的相关文章

交换变量的三种方法及简单分析

交换两个变量的思路主要有两种:借助或不借助临时变量.具体操作时又有以下三种简单算法: 1.借助临时变量的算法 #include <stdio.h> int main(void) { int a, b, t; scanf("%d%d", &a, &b); t = a; a = b; b = t; printf("a = %d, b = %d\n", a, b); return 0; } 2.不借助临时变量的算法1(通过加减运算) #incl

Mac添加环境变量的三种方法

Mac添加环境变量的三种方法   法一:系统级,修改/etc/paths(每一行是一个环境变量)   法二:系统级,方便管理 1.创建一个文件: sudo touch /etc/paths.d/mysql 2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑): sudo vim /etc/paths.d/mysql 3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了) /usr/local/mysql/bin

【SAS BASE】定义固定长度的character变量的四种方法

INPUT语句 1 INPUT Food $; /*采用list-style input,字符型变量默认长度为8*/ 2 INPUT Food $1-10; /*采用column input,长度由列的数量决定*/ 3 INPUT Food $15.; /*采用formatted input,长度formatted中的数字决定*/ ASSIGNMENT语句(赋值):用户可通过Assignment语句定义新变量,其程度有第一个出现在该变量中的观测决定. LENGTH语句:在DATA步中使用Leng

Ubuntu设置环境变量的几种方法

1.Linux的变量种类 按变量的生存周期来划分,Linux变量可分为两类: 1.1 永久的:需要修改配置文件,变量永久生效. 1.2 临时的:使用export命令声明即可,变量在关闭shell时失效. 2.设置变量的三种方法 2.1 在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”. 例如:编辑/etc/profile文件,添加CLASSPATH变量 $ vi /et

Kettle_设置变量的两种方法

一个复杂的kettle作业一般包括很多子作业和转换,在主作业Start后通常会添加一个[设置变量]的流程,该流程的功能是为所有流程的公共变量设置通用值.       主作业添加的[设置变量]针对的是所有流程,如果需要运行某个在作业,就需要将其引用的变量值改为常量才能运行,想当年麻烦,本文介绍两种方法规避该问题 方法一:在子作业中添加设置变量流程 下图中table changlog exists?流程使用变量${cl},但是设置${cl}变量的值在主作业执行,所以执行本作业时会报错  解决方法:在

linux修改环境变量的三种方法【转】

[环境变量配置的三个方法] 如想将一个路径加入到$PATH中,可以像下面这样做: 1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦. 这个只针对特定的shell; $ PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH) 2. 修改/etc/profile文件,如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量

JS中如何在外部引用私有变量的两种方法 复习

引用:https://blog.csdn.net/liwenfei123/article/details/77964222 运用闭包的特权方法 在构造函数中定义特权方法 这种模式在构造函数中定义了所有私有变量和函数. 能够在构造函数中定义特权方法是因为特权方法作为闭包,能够访问在构造函数中定义的所有变量和函数. function product(){ var name='yuxiaoliang'; this.getName=function(){ return name; } } var obj

linux配置环境变量的三种方法(装载)

现在使用linux的朋友越来越多了,在linux下做开发首先就是需要配置环境变量,下面以配置java环境变量为例介绍三种配置环境变量的方法. 1.修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题. (1)用文本编辑器打开/etc/profile (2)在profile文件末尾加入: JAVA_HOME=/usr/share/jdk1.5.0_05 PATH=$JAVA_HOME/bin:

linux设置变量的三种方法

1在/etc/profile文件中添加变量对所有用户生效(永久的) 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久生效”. 例如:编辑/etc/profile文件,添加CLASSPATH变量 # vi /etc/profile export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注1:profile文件在系统启动时将被运行.大家可以在里面加入其他命令,但是一定要加正确,不然的话系统会启动不