zoukankan      html  css  js  c++  java
  • php实现2017年京东编程题之异或问题

    问题描述:

      异或运算是常见的二进制运算,给出两个n位二进制数a,b。a异或b的运算依次考虑二进制的每一位,若这一位相同,那么这一位的异或结果就是0,不同就是1。

    例如a=1100, b=0100。执行a异或b的运算,a的最高位是1,b的最高位是0,两个数字不同所以最高位异或结果是1;a和b次高位都是1,所以次高位异或为0;最后两位它们都是0,所以异或结果也都是0。那么a异或b的答案就是1000。

      现在输入两个n位二进制数,输出它们异或结果的十进制答案。上述样例中异或的二进制结果为1000,转化成十进制就是8。

    测试用例:

    4

    1100

    0011

    out:15

    代码:

    //打开stdin流
    $input = fopen("php://stdin","r");
    //获取二进制位数)
    $n = trim(fgets($input));
    while($n){
      //获取第一、第二个二进制数,为避免空格的输入,去掉获取的值的前后空格
      $str1 = trim(fgets($input));
      $str2 = trim(fgets($input));
      //先将结果赋空
      $strout = '';
      //进行异或运算
      for($i=0;$i<$n;$i++){
        $strout.= ((int)$str1[$i])^((int)$str2[$i]);
      }
      ltrim($strout,1);
      //将异或之后的结果转换为十进制数并输出
      echo bindec($strout)." ";
      $n = trim(fgets($input));
    }
    //关闭文件流
    fclose($input);

    调试:

    win+r,输入cmd打开dos窗口,进入包含php.exe的目录下,如图所示:(注意:jingdong.php是我自己写好的php文件,拷贝到php目录下,或者用编译器直接在php目录下建立文件也可)。

    不以物喜,不以己悲
  • 相关阅读:
    防止特殊html字符的问题(xxs攻击)方法
    asp.net 服务器Button控件使用(onclick和onclientclick使用)
    Asp:Button控件onclick事件无刷新页面提示消息
    动态添加Marquee标签,并动态赋值与属性
    asp.net 前台通过Eval()绑定动态显示样式
    asp.net 中json字符串转换
    近况
    C# fixed语句固定变量详解
    fixed说明
    Net架构必备工具列表
  • 原文地址:https://www.cnblogs.com/ylcxBlog/p/6714448.html
Copyright © 2011-2022 走看看