读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

输入格式:

每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 1。

输出格式:

在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。

输入样例:

1234567890987654321123456789

输出样例:

yi san wu

分析:
  1.本题考核的是数组的相关概念;
  2.可以将n转化为str的数组,然后使用for循环获取输入n正整数的各个字段的值; 第一步,分割数字
使用awk,cut,for 按位截取数字,并将数组放入到数组中
#/bin/bash
n=121332332424243
length=$(echo $n |awk '{print length($0)}') #通过awk 打印变量长度
num=()                          #创建一个空数组         
i=1                            #位置从1开始              
for ((i > 0; i <= ${length} ; i++))
do
str=$(echo $n |cut -c $i)        #cut -c 按位置截取字符串
echo "$i: $str"
        num[$(expr $i - 1 )]=$str        #按照数组位,将分割的字符置入数组变量中
done
echo ${num[*]}

 第二步,创建拼音的数组变量,按0-9顺序排列。

#/bin/bash
read n
length=$(echo $n |awk '{print length($0)}') #获取正整数位置的长度
pinyin=(ling yi er san si wu liu qi ba jiu)  #创建pinyin的数组变量,按数字对应关系创建
num_py=()                        #创建num_py的数组变量
#创建拼音匹配函数
fuc_pinyin(){
local x=0
for ((x >=0; x <=9 ; x++))
do
if [ $x -eq $str ];then py=$(echo ${pinyin[$x]});fi    #判断截取字符与位置是否匹配,匹配则输出对应的拼音
done
}
i=1
for ((i >= 0; i <= ${length} ; i++))
do
str=$(echo $n |cut -c $i)          #截取字符
fuc_pinyin #引用函数,转换数字
num_py[$(expr $i - 1 )]=$py         #按位置为 数组变量num_py赋值
done
echo ${num_py[*]}

 

em.... 提交之后,告诉我只有答案正确!测试点,真心不知道考核的是什么,心累!

练习题存在的问题:

  1.算术运算,运算符的前后都需要保留一个空格;

  2.awk 的length 可以获取字符串的长度,配合cut可以获取字符的定义;(其余字符串的截取方法。。。。)

补充python版本

#!/usr/bin/python3
#-*- coding:utf-8 -*- PY=['ling','yi','er','san','si','wu','liu','qi','ba','jiu'] nums=input()
sum=0
list_py=[]
for i in str(nums):
sum=sum+int(i) for j in str(sum):
list_py.append(PY[int(j)]) print(' '.join(list_py)) #.join()方法,用来在插入中间字符

  

shell练习--PAT题目1002:写出这个数(失败案例)的更多相关文章

  1. 【PAT】1002. 写出这个数 (20)

    1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...

  2. PAT 乙级 1002.写出这个数 C++/Java

    1002 写出这个数 (20 分) 题目来源 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n ...

  3. PAT乙级 1002. 写出这个数 (20)

    1002. 写出这个数 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字 ...

  4. [C++]PAT乙级1002.写出这个数(20/20)

    /* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...

  5. PAT 乙级 -- 1002 -- 写出这个数

    题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字 ...

  6. PAT 乙级 1002. 写出这个数 (20)(C语言描述)

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...

  7. PAT乙级1002. 写出这个数 (20)

    读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...

  8. PAT Basic 1002 写出这个数 (20 分)

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...

  9. 【x】 PAT/BasicLevel_C++/1002. 写出这个数 (20).cpp

    C++中的to_string()函数[C++11支持] - Bravo Yeung-羊较瘦之自留地 - CSDN博客https://blog.csdn.net/lzuacm/article/detai ...

  10. shell练习--PAT题目1007:关于素数对(失败案例)

    让我们定义d​n​​为:d​n​​=p​n+1​​−p​n​​,其中p​i​​是第i个素数.显然有d​1​​=1,且对于n>1有d​n​​是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...

随机推荐

  1. HTML学习之==>HTML标签

    前端的三把利器: HTML:一个人 CSS:这个人的衣服 JS:这个人的行为 HTML(超文本标记语言) html代码实际上就是一套能够被浏览器所识别的规则代码,由一个个标签组成.html代码就是一大 ...

  2. zabbix+grafana使用

    参照文档 https://blog.csdn.net/xiegh2014/article/details/54928883

  3. 以非root身份安装Python的Module或者Package以及pip安装指定路径

    因为要远程访问公司的服务器,没有sudo的权限,所以在安装python的一些包的时候就不能安去默认路径了(比如以/usr/local/lib/为prefix的路径). 一般来讲用easy_instal ...

  4. 来自数据源的 String 类型的给定值不能转换为指定目标列的类型 nvarchar

    .TrimEnd() 怀疑是否SqlBulkCopy是否存在某种bug,故而在系统中改写代码,用单个sql的插入数据方式,用循环逐条导入.结果是没问题.难道真的是SqlBulkCopy有某种bug?上 ...

  5. python启动线程查看线程的名称和id;python杀掉进程的方法

    def cpu_app(): print("CPU") #启动一个线程t=threading.Thread(target=cpu_app,args=()) t.daemon = T ...

  6. C语言第十周作业

        这个作业属于哪个课程 C语言程序设计 这个作业的要求在哪里 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/h ...

  7. javascript学习笔记--经典继承、组合继承、原型式继承、寄生继承以及寄生组合继承

    经典继承 js中实现经典继承的方式是通过构造函数来实现的,即在子类中对父类调用call方法. function Geometric() { this.time = ""; this ...

  8. 什么场景下用redis而不用mysql?

    redis我们用作缓存,对查询速度要求比较高的应用场景比较适合.对有复杂逻辑关系的存储不适合. mysql是硬盘存储的,在高性能io要求的项目里不能满足需求,而redis所有数据存在内存里,因此要快得 ...

  9. C语言--一维数组,字符数组

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zuoyou1314/article/details/30799519 watermark/2/tex ...

  10. ArcGIS Server导出shp文件

    需求: 在项目中客户提出需要在Web端能够定义条件将后台的数据导出shp文件,并下载. 实现: 基于ArcGIS开发导出矢量数据的服务,用户输入导出数据类型.过滤条件.导出范围等条件,服务能够快速将相 ...