今天金山笔试一题目的深入,2006-10-21
出自求职百科
点击排行
- Index - (261056)
- 宝洁 - (58899)
- 华为 - (55553)
- 普华永道 - (43203)
- IBM - (41049)
- 中国银行 - (36636)
- 毕马威 - (34694)
- 富士康 - (31653)
- 招商银行 - (31382)
- 强生 - (31351)
最近更新
题目要求:不用临时变量,交换两个整数的值。
当场的所答:
=======
a=a+b;
b=a-b;
a=a-b;
=======
另解:
========
a=a^b;
b=a^b;
a=a^b;
========
当场先用异或做了半天,没做出来,等其它的题目做完之后,反过来再继续,就用了上述所述的当场答案。在回来的路上,跟同学讨论,自己在琢磨,最后终于正解了异或这种解法。
再到网上搜了一下异或的用法,它也常用于密码学。
如下:
=================================
int c,p,key=8;//c(Ciphertext)代表密文,p代表明文,key代表密钥
cin>>p;
c=p^key;
p=c^key;
=================================
上面是一个简单的密码编程问题,p是用户登录时输入的密码,c是存在数据库中的数据,key是已经定义好的密钥。这样,如果别人盗取了数据库中的密码,用该密码登录时,会被提示“该用户密码错误,请确定后重新输入”。呵呵,这只是一个简单的密码编码。当然,常用的不会这么简单。
P.S :真心希望自己通过金山的笔试,取得面试资格。同时,又多了一种思路,额外收获,欣喜!
