专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>shell脚本欣赏>

用shell脚本判断输入数字是不是回文数(palindrome)

百度收藏 QQ搜藏

原文:http://bash.cyberciti.biz/academic/palindrome-shell-script/
"回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数.
任意某一个数通过以下方式相加也可得到
如:29+92=121
不过196这个数还没有发现此类特征
另外个别平方数是回文数
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
依次类推
 
其实算法很简单,就是把数逆转后和原来的值比较就可以了。

以下是该shell脚本的源代码:

#!/bin/bash
# Shell script to find whether an input number is palindrome or not
# -----------------------------------------------
# Copyright (c) 2006 nixCraft <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
echo -n "Enter number : "
read n
 
# store single digit
sd=0
 
# store number in reverse order
rev=""
 
# store original number
on=$n
 
while [ $n -gt 0 ]
do
    sd=$(( $n % 10 )) # get Remainder
    n=$(( $n / 10 ))  # get next digit
    # store previous number and current digit in reverse
    rev=$( echo ${rev}${sd} )
done
 
if [ $on -eq $rev ];
then
  echo "Number is palindrome"
else
  echo "Number is NOT palindrome"
fi
上一篇:shell脚本实现X和Y两个数值的交换 下一篇:shell脚本之颠倒输入数字(趣味数学)

power by soyo123 2007-2008