相关文章推荐
彷徨的匕首  ·  JwtBearerExtensions.Ad ...·  1 年前    · 
跑龙套的松树  ·  Swift - ...·  2 年前    · 

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

  • 输入格式:
    每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100​​ 。
  • 输出格式:
    在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。
  • 输入样例:
    1234567890987654321123456789
  • 输出样例:
    yi san wu

代码实现如下:

算法实现思想 1. 将输入的整数转换称字符串,对str型进行切割 2. 将切割得到的str进行int类型转换,并累加求和 3. 将得到的和转换为字符串,并切割转换为int类型插入列表 4. 以列表作为索引,在list中找到所对应的拼音字符,输出结果 def main_code ( lists_n , n ) : str_n = str ( n ) sum = 0 for str_i in str_n : sum += int ( str_i ) new_lists = [ ] for i in str ( sum ) : new_lists . append ( lists_n [ int ( i ) ] ) return " " . join ( new_lists ) if __name__ == '__main__' : lists_n = [ "ling" , "yi" , "er" , "san" , "si" , "wu" , "liu" , "qi" , "ba" , "jiu" ] n = int ( input ( '请输入正整数:' ) ) result = main_code ( lists_n , n ) print ( result )

前期草稿代码:

#coding=utf-8
pinyin_dict = {'0':'ling','1':'yi','2':'er','3':'san','4':'si','5':'wu','6':'liu','7':'qi','8':'ba','9':'jiu'}
input_value = int(input('请输入正整数:'))
if input_value <= 0:
    print('输入不符合要求')
elif input_value < 10**100:    
    # 1、计算各位数字之和
    ## 方法一:数学方法
    #sum_split = 0
    #while input_value > 0:
        #sum_split += input_value % 10    #取余
        #input_value = input_value // 10  #取整数,舍弃最后一位
    #print(sum_split)
    ## 方法二:因为字符串是序列,是可遍历对象,因此可用for循环取出每一个字符,这里我们直接用列表推推倒式
    #sum_split = sum([int(i) for i in str(input_value)])
    #print(sum_split)    
    # 方法三:因为字符串是序列,是可遍历对象,可以通过map函数一一映射,map(int,str(input_value))将字符串的每一个字符映射成int
    sum_split = sum(map(int,str(input_value)))
    print(sum_split)
    # 2、将和的每一位数字拆开,以字符串的形式储存在列表中,形成字典的键
    ## 方法一:数学方法
    #list_split = []
    #while sum_split > 0:
        #list_split.append(str(sum_split % 10))
        #sum_split = sum_split // 10
    #list_split = list(reversed(list_split))
    #print(list_split)
    # 方法二:因为字符串是序列,是可遍历对象,可通过python的list方法直接得到
    list_split = list(str(sum_split))
    print(list_split)
    # 3、通过键查找值,并将值储存在列表中,最后将列表中的多个字符串通过空格拼接成一个字符串
    pinyin_list = []
    for i in list_split:
        pinyin_list.append(pinyin_dict[i])
    print(pinyin_list)
    print(' '.join(pinyin_list))
                    题目:读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100​​ 。输出格式:在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi san wu代码:#coding=utf-8pinyin_dict = {'0':'ling','1':
在大于1的整数中,除了1和该数自身外,无法被其他整数整除的数。大于1的数若不为素数,则被称为合数,也叫作合成数。
素数的特点
大于2的质数只能是奇数。(不能说大于2的奇数都是质数。)
大于5的质数,个位数只能是1、3、7、9。(不能说个位数是1、3、7、9的数都是质数。)
大于3的质数只能是6n-1或者6n+1型(n是正整数)。(不能说6n-1或者6n+1型的数都是质数)。
合数的特点
所有大于2的偶数都是合数;
所有大于5的奇数中,个位为5的都是合数;
除0以外,所有个位为0的自然数都是合数;
所有个位为4,6,8的自然数都是合数;
最小的(偶)合数为4,最小的
				
编写程序,定义和调用函数int sum(int (*fp)(int),int start,int end)和int f(int x),f()函数的功能是x的平方;从键盘输入两个整数,存放在变量num1 和num2中,要num1≤num2;调用函数sum(f, num1,num2),出f(num1)+…+f(num2)的值。 例如,假设num1 为1,num2为5,则f(1)为1²、f(2)为2²、f(3)为3²、f(4)为4²、f(5)为5²、f(1)+...+f(5)的值为55。
#课后作业:1、 宠物 :创建多个字典,对于每个字典,都使用一个宠物的名称来给它命名; #在每个字典中,包含宠物的类型及其主人的名字。将这些字典存储在一个名为pets 的列表中,再遍历该列表,并将宠物的所有信息都打印出来。 a=[{'name':'bianmu','age':6,'zhuren':'wuqi'},{'name':'hashiqi','age':10,'zhuren':'wuwei'},{'name':'jiwawa','age':18,'zhuren':'tom'}] for i in a
每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10的100次方。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 1234567890987654321123456789 输出样例: yi san wu 各个位数上的和 得的和再将各个位数上数字转换成中文 利用... 上述代码中,我们通过不断地对 n 取模得到最低位数字,然后将其加到 sum 中,再将 n 除以 10 得到一个去掉最低位数字的新数,重复上述步骤直到 n 变为 0,此时 sum 中就存储了各位数字之和。 接下来,我们需要将和的每一位数字汉语拼音写出,可以使用以下代码实现: ```python # 定义一个字典,将数字和对应的汉语拼音联系起来 pinyin = { 0: 'ling', 1: 'yi', 2: 'er', 3: 'san', 4: 'si', 5: 'wu', 6: 'liu', 7: 'qi', 8: 'ba', 9: 'jiu' # 将各位数字从低到高存储到列表中 digits = [] while sum > 0: digits.append(sum % 10) sum //= 10 # 将列表中的数字反转,并依次输出对应的汉语拼音 digits.reverse() for d in digits: print(pinyin[d], end=' ') 上述代码中,我们首先定义了一个字典 pinyin,将数字和对应的汉语拼音联系起来。然后,我们将各位数字从低到高存储到列表 digits 中,便于后续输出每一位数字汉语拼音。最后,我们将列表 digits 反转,依次输出每一位数字对应的汉语拼音