PAT乙级1006题python3代码

PAT乙级1006题python3代码

目录

  • PAT乙级1006题python3代码

      • 目录
      • 代码

题目:

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

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

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

输入样例1:

234

输出样例1:

BBSSS1234

输入样例2:

23

输出样例2:

SS123

代码

# -*- coding: utf-8 -*-
"""
Created on Mon Mar 27 22:45:41 2017

@author: xyq152438
"""
def panduan(a):
    b = str(a)
    list_1 = []
    list_2 = []
    list_3 = []
    baiwei =int(int(a)/100)      #判断百位,十位,各位,十位可以不这么麻烦用a%100/10即可
    a_1=int(a)-int(baiwei*100)
    shiwei = a_1/10
    gewei = a_1%10

    if len(b)==3:         #三位数的情况
        for i in range(int(baiwei)):
          list_1.append (‘B‘)      #B转为数组
        str_1 = ‘‘.join(list_1)     #B数组转为字符串
        if int(shiwei)==0:
            str_2 =‘0‘
        else:
            for i in range(int(shiwei)):
                list_2.append(‘S‘)
            str_2 = ‘‘.join(list_2)
        if int(gewei) == 0:
            print(str_1+str_2+‘0‘)
        else:
            for i in range(int(gewei)):
                list_3.append(str(i+1))
            str_3 = ‘‘.join(list_3)
            print(str_1+str_2+str_3)

    elif  len(b)==2:             #2位数情况
        for i in range(int(shiwei)):
            list_2.append(‘S‘)
        str_2 = ‘‘.join(list_2)
        if int(gewei)==0:
            print(str_2+‘0‘)
        else:
            for i in range(int(gewei)):
                list_3.append(str(i+1))
            str_3 = ‘‘.join(list_3)
            print(str_2+str_3)

    elif len(b)==1:     #个位数情况
        if int(gewei)==0:
                print(0)
        else:
            for i in range(int(gewei)):
                list_3.append(str(i+1))
            str_3 = ‘‘.join(list_3)
            print(str_3)

a = input()
panduan(a)


如果您感觉我的文章对您有帮助,请帮忙点击下广告,以支持本站的发展,谢谢!

本文由【waitig】发表在等英博客
本文固定链接:PAT乙级1006题python3代码
Wordpress技术交流群:451350210

如果您觉得文章对您有帮助,可以在此赞助:

时间: 2024-11-07 13:12:02

PAT乙级1006题python3代码的相关文章

PAT——乙级真题1003代码

#include<iostream> #include<string> using namespace std; int getLength(string str0); int main(){ int n, index=0; cin>>n; //define dynamic array string *str=new string[n]; //initialize the array for(int i=0;i<n;i++){ cin>>str[i];

PAT——乙级真题1001代码

PAT——乙级真题1002代码

PAT 乙级真题 1006.1016.部分A+B

PAT 乙级真题 1006.1016.部分A+B 题目描述 正整数A的"DA(为1位整数)部分"定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA = 6,则A的"6部分"PA是66,因为A中有2个6. 现给定A.DA.B.DB,请编写程序计算PA + PB. 输入格式 输入在一行中依次给出A.DA.B.DB,中间以空格分隔,其中0 < A, B < 1010. 输出格式 在一行中输出PA + PB的值. 输入样例 386276

1054. 求平均值 (20)-PAT乙级真题

今天刚刚到学校,2017年学习正式开始了,今天看到了浙大的<数据结构>这学期又要开课了,决定一定要跟着学习一遍:在大学生mooc网上学习:http://www.icourse163.org/course/zju-93001#/info :然后就是跟着<算法之美>也要同步看完. 然后就在PAT上随便做一道题,这是第一次通过AC,发现了两个比较好的博客主页:http://www.liuchuo.net/  和  https://www.joyhwong.com/   都总结了刷题的过程

PAT 乙级真题 1002.数字分类

PAT 乙级真题 1002.数字分类 题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数字. 输入格式 每个输入包含1个测试用例.每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的

PAT 乙级真题 1008.锤子剪刀布

PAT 乙级真题 1008.锤子剪刀布 题目描述 大家应该都会玩"锤子剪刀布"的游戏: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤子".J代表"剪刀".B代 表"布",第1个字母代表甲方,第2个代表乙方,中间有1个空格. 输出格式 输出

PAT 乙级真题 1012.D进制的A+B

PAT 乙级真题 1012.D进制的A+B 题目描述 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式 输入在一行中依次给出3个整数A.B和D. 输出格式 输出A+B的D进制数. 输入样例 123 456 8 输出样例 1103 题目思路 #include<bits/stdc++.h> #define ll long long int using namespace std; int main() { ll a,b

PAT 乙级真题 1013.组个最小数

PAT 乙级真题 1013.组个最小数 题目描述 给定数字0-9各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意0不能做首位).例如: 给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558. 现给定数字,请编写程序输出能够组成的最小的数. 输入格式 每个输入包含1个测试用例.每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0.数字1.--数字9的个数.整数间用一个空 格分隔.10个数字的总个数不超过50,且至少拥有1个