华为编程大赛 每日一练(三)

来源:互联网 发布:有哪些要淘宝网店转让 编辑:程序博客网 时间:2024/05/16 07:11

#include "stdio.h"#include <math.h>int Binary1Num(int m)            //计算整形数字的二进制表示时中1的个数函数{                                //实际上计算机不管你输入的什么数都是以二进制保存的,因此只需移位运算符即可 int n=0,b[16]; int i,sum=0; //除了将要输入复制的变量外都要附上初值     for(;m;m>>=1 )sum+=m&1;     //>>=是将i转换成二进制数开始向右移位运算符      return sum; }void main(int argc,char*argv[]){  int a,b;  int c=0,d=0;int e,f;  scanf("%d%d",&a,&b);    c=abs(a);                      //要添加库#include <math.h>      d=abs(b);     e=Binary1Num(c) ;    f=Binary1Num(d);    // printf("%d %d",e,f);   if(e==f)      printf("0");       else if(e>f)    printf("%d",a);        else if(e<f)   printf("%d",b);        else  printf("-1");     }

输入 -30

        20

 输出-30


0 0