一:FILIP
题目描述
给你两个十进制正整数 a,b,输出将这两个数翻转后的较大数。
「翻转」在本题中的定义详见「说明 / 提示」部分。
输入
第一行,两个十进制正整数 a,b。
输出
第一行,a 和 b 翻转后的较大数。
样例输入1
734 893
样例输出1
437
样例输入2
221 231
样例输出2
132
样例输入3
839 237
样例输出3
938
提示
「翻转」在本题中的定义
设原数有 f 位,最高位为 a1,第二位为 a2,……,第 f 位为 af。
那么该数的翻转同样有 f 位,最高位为为 af,第二位为 af−1,……,第 f 位为 a1。
数据规模及约定 对于 100% 的数据,100≤a,b≤999,a,b 不含 0 或不为 0。
来源/分类(难度系数:一星)
数学思维
完整代码展示:
a,b=map(str,input().split())
c=list(a)
c.reverse()
d=list(b)
d.reverse()
sum_1=""
sum_2=""
for i in range(0,len(c)):
sum_1+=c[i]
sum_2+=d[i]
if sum_1>=sum_2:
print(sum_1)
else:
print(sum_2)
a,b=map(str,input().split())
c=list(a)
c.reverse()
d=list(b)
d.reverse()
sum_1=""
sum_2=""
for i in range(0,len(c)):
sum_1+=c[i]
sum_2+=d[i]
if sum_1>=sum_2:
print(sum_1)
else:
print(sum_2)
代码解释:
“a,b=map(str,input().split()) ”,导入用户输入的两个十进制整数a,b并将其转换为字符串。
“c=list(a)
c.reverse()
d=list(b)
d.reverse() ”,分别将a,b储存在列表c,d中,再将c,d反转。
“sum_1=""
sum_2=""
for i in range(0,len(c)):
sum_1+=c[i]
sum_2+=d[i] ”,建立两个空字符串sum_1,sum_2,依次遍历c,d中元素,sum_1,sum_2分别连接c,d中元素。
“if sum_1>=sum_2:
print(sum_1)
else:
print(sum_2) ”,判断sum_1是否大于等于sum_2:如果是,则打印sum_1;否则打印sum_2。
运行效果展示:
二:字符串p形编码
题目描述
给定一个完全由数字字符('0','1','2',…,'9')构成的字符串 str ,请写出 str 的 p 型编码串。例如:字符串 122344111 可被描述为 1个1、2个2、1个3、2个4、3个1 ,因此我们说122344111 的 p 型编码串为 1122132431 ;类似的道理,编码串 101 可以用来描述 1111111111 ;00000000000 可描述为 11个0,因此它的p型编码串即为 110 ;100200300 可描述为 1个1、2个 0、1个2、2个0、1个3、2个0,因此它的 p 型编码串为 112012201320。
输入
输入仅一行,包含字符串 str。每一行字符串最多包含 1000 个数字字符。
输出
输出该字符串对应的 pp 型编码串。
样例输入1
122344111
样例输出1
1122132431
来源/分类(难度系数:一星)
每日一题 循环结构
完整代码展示:
a=list(input())
sum1=""
b=1
c=[a[0]]
while b<len(a):
if a[b]==c[-1]:
c.append(a[b])
else:
sum2=str(len(c))+c[-1]
sum1+=sum2
c=[a[b]]
b+=1
sum1+=str(len(c))+c[-1]
print(sum1)
a=list(input())
sum1=""
b=1
c=[a[0]]
while b<len(a):
if a[b]==c[-1]:
c.append(a[b])
else:
sum2=str(len(c))+c[-1]
sum1+=sum2
c=[a[b]]
b+=1
sum1+=str(len(c))+c[-1]
print(sum1)
代码解释:
“a=list(input()) ”,导入用户输入的字符串并将其储存在列表a中。
“sum1=""
b=1
c=[a[0]]
while b<len(a):
if a[b]==c[-1]:
c.append(a[b])
else:
sum2=str(len(c))+c[-1]
sum1+=sum2
c=[a[b]]
b+=1 ”,建立一个空字符串sum1,用于连接字符串的p型编码。令b为循环密码子,初始值为1。建立一个列表c,储存列表a的第一个元素。当b<len(a)时:判断a[b]与列表c的末尾元素是否相同:如果相同,则将该元素添加进c中;否则将列表c的长度转换为字符型后与c中最后一个元素连接起来为sum2。再将sum2用sum1连接起来,将储存a[b]的列表赋给c。每循环一次,b+1,直至b==len(a),跳出整个while循环。
“sum1+=str(len(c))+c[-1] ”,将最后一次得到的列表c的长度转换为字符型后与c中最后一个元素连接起来,最后再将其用sum1连接。
“print(sum1) ”,打印sum1的最终结果。
运行效果展示:
三:数字三角形
题目描述
打印数字三角形,从 1 开始输出,第 i 行输出 i 个数,每个数字按 4 个位置输出。
输入格式
输入一行,包含一个整数 n。
输出格式
输出共 n 行。
第 i 行包括 i 个数,每个数占据四个位置。
样例输入输出
样例输入
4
样例输出
1
2 3
4 5 6
7 8 9 10
数据范围
对于 100% 的数据,保证 1≤n≤1000 。
提示说明
c 语言中%4d可以输出一个数,占据四个位置,右对齐。
来源/分类(难度系数:一星)
基本输入输出 循环结构
完整代码展示:
a=int(input())
d=[]
for i in range(1,int(a*(a+1)/2)+1):
d.append(i)
space=' '
c=1
while c<a+1:
sum=''
for i in range(c):
if len(str(d[i]))==1:
sum+=space*3+str(d[i])
elif len(str(d[i]))==2:
sum+=space*2+str(d[i])
elif len(str(d[i]))==3:
sum+=space*1+str(d[i])
else:
sum+=str(d[i]) print(sum)
for j in range(c):
d.append(d[0])
del d[0]
c+=1
a=int(input())
d=[]
for i in range(1,int(a*(a+1)/2)+1):
d.append(i)
space=' '
c=1
while c<a+1:
sum=''
for i in range(c):
if len(str(d[i]))==1:
sum+=space*3+str(d[i])
elif len(str(d[i]))==2:
sum+=space*2+str(d[i])
elif len(str(d[i]))==3:
sum+=space*1+str(d[i])
else:
sum+=str(d[i])
print(sum)
for j in range(c):
d.append(d[0])
del d[0]
c+=1
代码解释:
“a=int(input()) ”,导入用户输入的三角形的高度a。
“d=[]
for i in range(1,int(a*(a+1)/2)+1):
d.append(i) ”,建立一个空列表d,接着遍历1~a*(a+1)/2的数字i,并将i添加进d中。
“space=' '
c=1
while c<a+1:
sum=''
for i in range(c):
if len(str(d[i]))==1:
sum+=space*3+str(d[i])
elif len(str(d[i]))==2:
sum+=space*2+str(d[i])
elif len(str(d[i]))==3:
sum+=space*1+str(d[i])
else:
sum+=str(d[i])
print(sum)
for j in range(c):
d.append(d[0])
del d[0]
c+=1 ”,space代表一个空格。令c为循环密码子,当c<a+1时:建立一个空字符串sum,接着遍历0~c-1的数字,判断d[i]转换为字符串后的长度,如果为1:sum+space*3+str(d[i])......最后打印sum的最终结果。接着循环c次:将d[0]添加进d的末尾,并将d[0]从d中删除。每循环一次,c+1,直至c==a+1时,跳出整个while循环。
运行效果展示:
(声明:以上内容均为原创)