码迷,mamicode.com
首页 > 其他好文 > 详细

异或交换两个数;实现pow(int x, int y) ,即x的y次方

时间:2014-08-18 21:55:02      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   io   for   问题   div   

问题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.out
y=2;ret=4
y=3;ret=8
y=4;ret=16
y=5;ret=32
y=6;ret=64
y=7;ret=128
y=8;ret=256
y=9;ret=512
y=10;ret=1024
====1024
[root@admin Desktop]# 

 

异或交换两个数;实现pow(int x, int y) ,即x的y次方,布布扣,bubuko.com

异或交换两个数;实现pow(int x, int y) ,即x的y次方

标签:des   style   blog   color   io   for   问题   div   

原文地址:http://www.cnblogs.com/McQueen1987/p/3920448.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!