2019年7月25日 shell练习--PAT题目1006:换个格式输出整数(失败案例)

让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:

每个测试输入包含 1 个测试用例,给出正整数 n(<)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n。

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123

这里我采用的是获取位数上的数字然后做字符操作的办法,反正还是一如既往的全绿案例!阿希吧!
#!/bin/bash
read n 

if [ $n -gt 0 -a $n -le 999 ]
then
        B_w=$( echo "scale=0; $n / 100 "|bc) #浮点数计算expr不支持
        S_w=$( echo "scale=0; ($n - $B_w * 100) / 10 "|bc)
        G_w=$( echo "scale=0; ($n - $B_w * 100 - $S_w * 10 ) "|bc)
        str1=$(seq -s ‘B‘ $(expr $B_w + 1) |sed ‘s/[0-9]//g‘)   #seq -s 可以将指定字符前插数字, 1a2a3
        str2=$(seq -s ‘S‘ $(expr $S_w + 1) |sed ‘s/[0-9]//g‘)
        i=1
        for ((i >= 1; i <=$G_w ; i++ ))
        do
                str_t[ $(expr $i - 1) ]=$i
        done
        str3=$(echo ${str_t[@]} |sed ‘s/ //g‘)
else
        echo "input number not in [0-999]"
        exit 1
fi

echo ${str1}${str2}${str3}

  

原文地址:https://www.cnblogs.com/wyf-349/p/11250804.html

时间: 2024-08-29 13:48:53

2019年7月25日 shell练习--PAT题目1006:换个格式输出整数(失败案例)的相关文章

shell练习--PAT题目1004: 成绩排名 !(失败案例)

读入 n(>)名学生的姓名.学号.成绩,分别输出成绩最高和成绩最低学生的姓名和学号. 输入格式: 每个测试输入包含 1 个测试用例,格式为 第 1 行:正整数 n 第 2 行:第 1 个学生的姓名 学号 成绩 第 3 行:第 2 个学生的姓名 学号 成绩 ... ... ... 第 n+1 行:第 n 个学生的姓名 学号 成绩 其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的. 输出格式: 对每个测试用例输

2019年5月25日-linux就该这么学-第10课

第8章 iptables 与firewalld防火墙 8.0 四种设置网卡的方式(1) 命令行模式:vim /etc/sysconfig/network-scripts/ifcfg-eno网卡号:(2) 图形化界面:nmtui:(3) 图形化界面:nm-connection-editor:(4) 图形化界面:虚拟机界面右上角网络配置:配置好后,注意:(1) onboot=yes一定要启用:(2) 要重启网络才启效:systemctl restart network. 8.1 防火墙管理工具:防火

2019年7月25日 类的继承 1

面向对像: 继承,多态,封装 class ParentClass1: pass class ParentClass2: pass class SubClass(ParentClass1):#单继承 pass class SubClass2(ParentClass1,ParentClass2):#多继承 pass 子类定义的属性如果喝父类属性重名了,则优先调用子类的,没有覆盖这一说 什么时候用继承: 1.当类中有显著不同,并且较小类事较大类所需要的组件时,用组合. 2.当类中有许多相同功能,提取这

(面试题)内部类(2019年10月25日)

1.Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口? 可以继承其他类或实现其他接口,在Swing编程和Android开发中常用此方式来实现事件监听和回调 2.为什么内部类调用的外部变量必须是final修饰的? 因为生命周期的原因.方法中的局部变量,方法结束后这个变量就要释放掉,final保证这个变量始终指向一个对象.首先,内部类和外部类其实是处于同一个级别,内部类不会因为定义在方法中就会随着方法的执行完毕而跟随者被销毁.问题就来了,如果外部类的方法中

内部类(2019年10月25日)

java文件里面必须有且只有一个public的class,并且名字跟文件名一样, 如果一个文件有很多类,而且每个类前面都没写public ,那么会在和类名相同的类前默认加上一个public 1 Outer o= new Outer(); 2 Inner i= o.new Inner(); 3 i.method(); //等同于 Inner i= new Outer().new Inner(); 内部类分为:成员内部类,静态内部类,临时内部类,匿名内部类 成员内部类:地位就相当于类中的属性,在编译

2019年 10月 25日 杨爱桁 专业英语课后总结

第一层:物理层 第二层:链路层    以太网协议     mac地址 第三层:网络层:ip数据包    ip协议     ip地址分成两部分 ARP协议     子网掩码 第四层:端口    tcp协议   udp协议 原文地址:https://www.cnblogs.com/yangaiheng/p/11739783.html

2015年08月25日作业-Linux用户和组管理

用户.组的相关配置文件: 在Linux系统中,用户账号信息.用户密码.组账号信息.组密码都保存在不同的配置文件中 /etc/passwd  文件的格式,每行包含的信息: account:password:UID:GID:GECOS:directory:shell 用户名:密码占位符:UID:GUID(基本组ID):用户备注信息(多个以,隔开):家目录:默认shell /etc/shadow文件的格式,每行包含的信息: UserName:加密的密码:最近一次密码修改时间:最短使用期限:最长使用期限

开机时自动启动的AutoHotkey脚本 2019年07月08日19时06分

;;; 开机时自动启动的AutoHotkey脚本;; 此脚本修改时间 2019年06月18日20时48分;; 计时器创建代码段 -----------------------------------------------------------------------------------------; SetTimer可以模拟多线程从而不影响主线程的流畅执行; 请在SciTE4AutoHotkey中选中单词并按快捷键F12跳转到函数定义处; 绿色免安装程序,统一都分类保存在本地磁盘D分区文

2019年12月8日 运飞龙 linux

1.system v init运行级别及作用 init运行级别                  作用 0                                  关机 1                                  单用户模式 2                                  多用户的文本界面 3                                  多用户的文本界面 4