有一个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
如:
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
评论列表