首页 > 代码库 > 异或交换两个数;实现pow(int x, int y) ,即x的y次方
异或交换两个数;实现pow(int x, int y) ,即x的y次方
问题1:异或交换两个数
假设x=2;y=3,我们的目标是(没有蛀牙!!)交换x,y的值;
利用异或的特殊性:x^x=0
即两个相同数字异或后值为0;
解决:
令x=x^y=2^3
令y=x^y=x^y^y=2^3^3=2(此时x=x^y)
令x=x^y=x^y^2=2^3^2=3(此时x=x^y;y=2)
问题2:实现pow(int x, int y) ,即x的y次方
x的y次方就是有y个x连续乘机,代码如下:
#include <stdio.h>#include <stdlib.h>int my_pow(int x,int y){ if(x==0) return 0; int ret=x,i=1; for(;i<y;i++){ ret=ret*x; printf("y=%d;ret=%d\n",i+1,ret); } return ret;}int main(){ int tmp = my_pow(2,10); printf("====%d\n",tmp); return 0;}
结果
[root@admin Desktop]# ./a.outy=2;ret=4y=3;ret=8y=4;ret=16y=5;ret=32y=6;ret=64y=7;ret=128y=8;ret=256y=9;ret=512y=10;ret=1024====1024[root@admin Desktop]#
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。