shell练习--PAT题目1002:写出这个数(失败案例)
读入一个正整数 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:写出这个数(失败案例)的更多相关文章
- 【PAT】1002. 写出这个数 (20)
1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式 ...
- PAT 乙级 1002.写出这个数 C++/Java
1002 写出这个数 (20 分) 题目来源 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n ...
- PAT乙级 1002. 写出这个数 (20)
1002. 写出这个数 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入一个自然数n,计算其各位数字 ...
- [C++]PAT乙级1002.写出这个数(20/20)
/* 1002. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100. ...
- PAT 乙级 -- 1002 -- 写出这个数
题目: 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字 ...
- PAT 乙级 1002. 写出这个数 (20)(C语言描述)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- PAT乙级1002. 写出这个数 (20)
读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10100. 输出格式:在一行内输出n的各位数字之和的每 ...
- PAT Basic 1002 写出这个数 (20 分)
读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 1. 输出格式: 在一行内输出 n 的 ...
- 【x】 PAT/BasicLevel_C++/1002. 写出这个数 (20).cpp
C++中的to_string()函数[C++11支持] - Bravo Yeung-羊较瘦之自留地 - CSDN博客https://blog.csdn.net/lzuacm/article/detai ...
- shell练习--PAT题目1007:关于素数对(失败案例)
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数.显然有d1=1,且对于n>1有dn是偶数.“素数对猜想”认为“存在无穷多对相邻且差为2的素 ...
随机推荐
- 阶段3 1.Mybatis_08.动态SQL_03.mybatis中动态sql语句-foreach和sql标签
foreach标签 in的查询 sql语句好写,但是传参在映射文件里面改怎么传呢 定义一个List<Integer>成员变量,然后生成get和set 定义一个新的查询方法 open:开始符 ...
- 中国MOOC_零基础学Java语言_第7周 函数_2完数
2 完数(5分) 题目内容: 一个正整数的因子是所有可以整除它的正整数.而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数.例如6=1+2+3(6的因子是1,2,3). 现在,你要写一个程序, ...
- RabbitMQ使用(上)
1. 说明 在企业应用系统领域,会面对不同系统之间的通信.集成与整合,尤其当面临异构系统时,这种分布式的调用与通信变得越发重要.其次,系统中一般会有很多对实时性要求不高的但是执行起来比较较耗时的地方, ...
- 前端 CSS 继承性和层叠性
CSS有两大特性:继承性和层叠性 前端 CSS的继承性 前端 CSS层叠性 CSS选择器优先级 前端 CSS 优先级 样式设置important
- [转帖]kafka基础知识点总结
kafka基础知识点总结 https://blog.csdn.net/qq_25445087/article/details/80270790 需要学习. 1.kafka简介 kafka是由Apach ...
- Java Mail 附件名太长导致接收端附件名解析出错
问题前提:公司需要往邮件中写 excle 文件,返送成功后发现文件格式有误(如:xxxx.bat 等文件后缀),但是有些文件又不会, 后来发现是由于文件名称太长所导致. 问题原因:java mail中 ...
- FastDFS分布式文件服务器
5.分布式文件服务器FastDFS(阿里巴巴) 5.1什么是FastDFS FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制,充分考虑了冗余备份.负载均衡 ...
- thinkPHP三级城市联动
html+js: <!doctype html> <html lang="en"> <head> <meta charset=" ...
- python列表,字典,集合
初识模块 import sys print(sys.path)#查看化境变量 print(sys.argv)#查看文件的相对路径,但是在pachrm中 会自动转为绝对路径 import os #os. ...
- 最长上升子序列(LIS) Medium1
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...