前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >当一只程序员遇到了一道无聊的智力填数题!

当一只程序员遇到了一道无聊的智力填数题!

作者头像
后端技术探索
发布2018-08-09 16:19:00
3410
发布2018-08-09 16:19:00
举报

本猿在朋友圈和群里多次看到这样一道智力题(见下图),一看就是一道需要乱扯的无聊的题目。好吧,试试就试试。

只能填数字啊,那就不能从“单位”的角度去乱搞了,那就用进制吧。给出的数字中出现了9,那就从十进制开始试试,

代码如下:

<?php

/**

* number从base进制转为十进制

**/

function show_convert_to_base_10 ($number, $base)

{

if (strstr ($number, '.'))

{

list ($integer, $decimal) = explode ('.', $number);

}

else

{

$integer = $number;

}

$integer = strrev ($integer);

$length = strlen ($integer);

for ($pos = 0; $pos < $length; ++$pos)

{

$digit = $integer[$pos];

if (eregi ('[a-z]', $digit))

{

$digit_value =

(ord (strtolower ($digit))

- ord ('a')) + 10;

$digit = "$digit ($digit_value)";

}

else

{

$digit_value = $digit;

}

$result = $digit_value * pow ($base, $pos);

$sums[] = $result;

}

if (isset ($decimal))

{

$decimal = '0'.$decimal;

$length = strlen ($decimal);

for ($pos = 1; $pos < $length; ++$pos) {

$digit = $decimal[$pos];

if (eregi ('[a-z]', $digit))

{

$digit_value =

(ord (strtolower ($digit))

- ord ('a')) + 10;

$digit = "$digit ($digit_value)";

}

else

{

$digit_value = $digit;

}

$result = $digit_value * pow (1/$base, $pos);

$sums[] = $result;

}

}

$sums = implode (' + ', $sums);

eval ("\$base_10_value = $sums;");

return $base_10_value;

}

// 开始解题

$ns = [1,3,5,7,9,11,13,15]; // 给出的数字

$jinzhis = [10,11,12,13]; // 几进制

foreach($jinzhis as $jz)

{

foreach($ns as $n1)

{

foreach($ns as $n2)

{

foreach($ns as $n3)

{

if (show_convert_to_base_10($n1, $jz) + show_convert_to_base_10($n2, $jz)

+ show_convert_to_base_10($n3, $jz) == show_convert_to_base_10(30, $jz))

{

echo "$jz"."进制".":$n1+$n2+$n3=30".",对应10进制:"

.show_convert_to_base_10($n1, $jz)."+".show_convert_to_base_10($n2, $jz)."+"

.show_convert_to_base_10($n3, $jz)."=".show_convert_to_base_10(30, $jz)."\n";

}

}

}

}

}

?>

只试了10、11、12,13进制,结果如下:

11进制:1+15+15=30,对应10进制:1+16+16=33

11进制:3+13+15=30,对应10进制:3+14+16=33

11进制:3+15+13=30,对应10进制:3+16+14=33

11进制:5+11+15=30,对应10进制:5+12+16=33

11进制:5+13+13=30,对应10进制:5+14+14=33

11进制:5+15+11=30,对应10进制:5+16+12=33

11进制:7+11+13=30,对应10进制:7+12+14=33

11进制:7+13+11=30,对应10进制:7+14+12=33

11进制:9+11+11=30,对应10进制:9+12+12=33

11进制:11+5+15=30,对应10进制:12+5+16=33

11进制:11+7+13=30,对应10进制:12+7+14=33

11进制:11+9+11=30,对应10进制:12+9+12=33

11进制:11+11+9=30,对应10进制:12+12+9=33

11进制:11+13+7=30,对应10进制:12+14+7=33

11进制:11+15+5=30,对应10进制:12+16+5=33

11进制:13+3+15=30,对应10进制:14+3+16=33

11进制:13+5+13=30,对应10进制:14+5+14=33

11进制:13+7+11=30,对应10进制:14+7+12=33

11进制:13+11+7=30,对应10进制:14+12+7=33

11进制:13+13+5=30,对应10进制:14+14+5=33

11进制:13+15+3=30,对应10进制:14+16+3=33

11进制:15+1+15=30,对应10进制:16+1+16=33

11进制:15+3+13=30,对应10进制:16+3+14=33

11进制:15+5+11=30,对应10进制:16+5+12=33

11进制:15+11+5=30,对应10进制:16+12+5=33

11进制:15+13+3=30,对应10进制:16+14+3=33

11进制:15+15+1=30,对应10进制:16+16+1=33

13进制:3+15+15=30,对应10进制:3+18+18=39

13进制:5+13+15=30,对应10进制:5+16+18=39

13进制:5+15+13=30,对应10进制:5+18+16=39

13进制:7+11+15=30,对应10进制:7+14+18=39

13进制:7+13+13=30,对应10进制:7+16+16=39

13进制:7+15+11=30,对应10进制:7+18+14=39

13进制:9+11+13=30,对应10进制:9+14+16=39

13进制:9+13+11=30,对应10进制:9+16+14=39

13进制:11+7+15=30,对应10进制:14+7+18=39

13进制:11+9+13=30,对应10进制:14+9+16=39

13进制:11+13+9=30,对应10进制:14+16+9=39

13进制:11+15+7=30,对应10进制:14+18+7=39

13进制:13+5+15=30,对应10进制:16+5+18=39

13进制:13+7+13=30,对应10进制:16+7+16=39

13进制:13+9+11=30,对应10进制:16+9+14=39

13进制:13+11+9=30,对应10进制:16+14+9=39

13进制:13+13+7=30,对应10进制:16+16+7=39

13进制:13+15+5=30,对应10进制:16+18+5=39

13进制:15+3+15=30,对应10进制:18+3+18=39

13进制:15+5+13=30,对应10进制:18+5+16=39

13进制:15+7+11=30,对应10进制:18+7+14=39

13进制:15+11+7=30,对应10进制:18+14+7=39

13进制:15+13+5=30,对应10进制:18+16+5=39

13进制:15+15+3=30,对应10进制:18+18+3=39

到程序员这里是不是很无聊!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 nginx 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档