给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: "202"
示例 2:
输入: -7
输出: "-10"
【脚本】
#!/bin/bash
#七进制处理
#
declare -A jinzhi ##定义一个数组
declare -i aa=0 ##定义一个整数
read -t 10 -p "请输入一个整数:" intt #获取用户输入
echo "$intt"|grep '-' &>/dev/null #检查用户输入是否为负数
flag=`echo "$?"` #创建一个标志符,如果为负数,则标志符$flag为0
if [ $flag = '0' ];then
intt=$[-$intt] #将负数先化为正数
fi
while :
do
yushu=$[$intt%7] #七进制的获取方式,取余数
jinzhi[$aa]=$yushu #将第一个余数放到数组的第一位,即下标为"0"
intt=$[$intt/7] #七进制的获取方式,取整数
if [ $intt -eq 0 ];then #判断是否为0
i=${#jinzhi[@]} #若为0,则获取数组jinzhi中有多少个元素
i=$[$i-1] #数组中最后一个元素的下标为数组元素个数减1
string="" #创建一个空变量
while [ $i -ge 0 ] 反向获取数组的元素,即从下标最大的开始获取
do
string=$string`echo "${jinzhi[$i]}"` #字符串叠加
i=$[$i-1] #遍历数组元素
done
if [ $flag = '0' ];then #判断此数是整数还是负数
echo "-$string" #若$flag为0,则为负
else
echo "$string" #若$flag为非0,则为正数
fi
exit 0
fi
aa=$[$aa+1] #元素下标自增
done
【效果】:
[root@localhost leetcode]# ./7_jinzhi.sh
请输入一个整数:-90
-156
[root@localhost leetcode]# ./7_jinzhi.sh
请输入一个整数:1000
2626