zoukankan      html  css  js  c++  java
  • 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()方法,用来在插入中间字符
    

      

  • 相关阅读:
    jQuery常用方法一览
    基于jQuery的AJAX和JSON实现纯html数据模板
    jQuery+ASP.NET的AJAX文件上传
    jquery 新建的元素事件绑定问题
    二、visual studio 2008 快捷键
    Sql Server表相关的语句
    使用临时表
    IIS如何启用Gzip压缩功能
    php5.2 的 php.ini 中文版
    joomla笔记——对joomla的初步认识
  • 原文地址:https://www.cnblogs.com/wyf-349/p/11231157.html
Copyright © 2011-2022 走看看