Linux 伙伴地址

来源:互联网 发布:北航大数据研究生就业 编辑:程序博客网 时间:2024/05/17 02:32
hadoop@dream:~$ cat parterner.c #include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>/***************************************************************hadoop@dream:~$ g++ parterner.c hadoop@dream:~$ ./a.out Please input size:4Please input the address:011011110000Its parterner is address 011011110100Please input size:16Please input the address:011011110000Its parterner is address 011011100000Please input size:0***************************************************************/char in[128];char parterner[128];int size;void input(){   printf("Please input size:");   scanf("%d",&size);   if(size<=0) return;   printf("Please input the address:");   scanf("%s",in);   //puts(in);   return;}void thinking(){     int n=0;     int i=0;     while(in[i]) {        n=n*2+in[i]-'0';        i++;     }     //printf("%d\n",n);     int t;     t=size<<1;     /*t=(int)(log(size)/log(2));     t=t+1;     t=1<<t;*/     //printf("%d\n",t);     t=n%t;     if(t==0) {        n=n+size;     }     else {       n=n-size;     }     i=0;     while(n) {         parterner[i]=n&1;         parterner[i]+='0';         i++;         n=n>>1;     }     parterner[i]='\0';     int j;     for(j=i-1,i=0;i<j;i++,j--)     {         if(parterner[i]!=parterner[j])          {             parterner[i]=(parterner[i]+parterner[j]) - (parterner[j]=parterner[i]);         }     }     return;}void output(){    printf("Its parterner is address ");    int m=strlen(in);    int n=strlen(parterner);    int i;    for(i=n;i<m;i++){        printf("0");    }    puts(parterner);}int main(int argc, char* argv[]){    while(1)     {        input();        if(size<=0) break;        thinking();        output();    }    return 0;}

0 0
原创粉丝点击