php实现2017年京东编程题之异或问题
2018-06-22 05:15:17来源:未知 阅读 ()
问题描述:
异或运算是常见的二进制运算,给出两个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";
$n = trim(fgets($input));
}
//关闭文件流
fclose($input);
调试:
win+r,输入cmd打开dos窗口,进入包含php.exe的目录下,如图所示:(注意:jingdong.php是我自己写好的php文件,拷贝到php目录下,或者用编译器直接在php目录下建立文件也可)。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:CI框架浅析(二)
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash