2019/10/14【转换为7进制数】

给定一个整数,将其转化为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

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值