[实践OK]每日一问之有一个n位数,它的各位数字翻转以后组成新的n位数,原来的n位数是新n位数的n倍,求所有可能的n位数。

jackxiang 2019-8-27 14:55 | |
有一个n位数,它的各位数字翻转以后组成新的n位数,原来的n位数是新n位数的n倍,求所有可能的n位数。
如:
8712/4 = 2,178


鸟哥的代码:

#make calcnumber
cc     calcnumber.c   -o calcnumber

#./calcnumber
0 = 0 / 1
1 = 1 / 1
2 = 2 / 1
3 = 3 / 1
4 = 4 / 1
5 = 5 / 1
6 = 6 / 1
7 = 7 / 1
8 = 8 / 1
9 = 9 / 1
2178 = 8712 / 4
108901089 = 980109801 / 9
109999989 = 989999901 / 9


http://live.aulddays.com/tech/11/linux-shell-too-great-base-error.htm


我用shell写了一个:
#cat *.sh
#!/bin/bash
for i in {1000..9999} ;do
    rev=$(echo $i | rev)
    div=$(echo "$rev/4" | bc)
    if [[ "10#$i" -eq "10#$div" ]];then
      echo "result="$i;
    fi
done

sh calcnumber.sh
result=1997  #这个是小数四舍五入后相等的,shell在处理小数这方面有些弱,得靠BC。
result=2178

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/10269/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2019-8-27 16:09
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]