程序员的算法趣题Perl版 每日一题1

探讨一个数学编程问题,目标是在1000至9999的整数范围内,通过插入基本算术运算符,使计算结果等于该数的逆序。代码采用循环和条件判断,遍历指定区间内的所有整数,解析每个数为四位数字,然后尝试所有可能的运算符组合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第二题

求位于1000~9999中的数,插入运算符号+-*/ 最少一个,并使结果等于该数的逆序。

$i = 1000;
$ii =9999;

@y = ('*','');
while($i <= $ii){
    $i =~/(\d)(\d)(\d)(\d)/;
    $n = $1;
    $m = $2;
    $l = $3;
    $k = $4;
    if($n != 0 && $m != 0 && $l != 0 && $k != 0){    
        for($o = 0;$o<=1;$o++){
            for($p = 0;$p<=1;$p++){
                for($q = 0;$q<=1;$q++){
                    $w = "$n$y[$o]$m$y[$p]$l$y[$q]$k";
                    if((length "$w") > 4){
                        $v = eval $w;
                        if((length "$v") == 4){
                            if($i eq reverse $v){
                                print"$i $w\n";
                            }
                        }
            
                    }
                }
            }
            
        }
    }
    $i++;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值