解题思路:
从题目中我们知道0~9每个数字占一位。
①先生成1~1000的数字字符串,('123456789101112131415161718192021......'),这里记为A。
②我们可以将三条边分开处理,通过观察图像规律:
左边所需要的字符串长度为n位,A中的下标对应为[0,n-1]。
底边所需要的字符串长度为2n-2位,A中的下标对应为[n,3n-3]。
右边所需要的字符串长度为n-2位,A中的下标对应为[3n-2,4n-5]。
因此,我们可以分别将三条边需要的数字字符串从A中取出来,分别存放在字符串A1,A2,A3中,为了后续方便,我们将A3逆序。
③按要求生成一个直角梯形的矩阵,初始用‘.’进行填充。
④按照规律填充对应位的数字即可。
注意事项:
参考代码:
n = int(input().strip()) A= '' for i in range(1,1000): A = A + str(i) A1 = A[:n] #左边数字 A2 = A[n:3*n-2] #底边数字 temp = A[3*n-2:4*n-4] A3 = temp[::-1] #右边数字 R = [['.' for j in range(n+i)] for i in range(n)] #初始化矩阵 for i in range(n): #填充左边 R[i][n-1-i] = A1[i] for i in range(2*n-2): #填充底部 R[n-1][i+1] = A2[i] for i in range(n-2): #填充右边 R[1+i][n+i] = A3[i] for i in range(n): for j in range(n+i): print(R[i][j],end='') print()
0.0分
2 人评分
【出圈】 (C语言代码)用单项循环链表浏览:768 |
点我有惊喜!你懂得!浏览:1326 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:552 |
汽水瓶 (C语言代码)浏览:698 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:578 |
C语言训练-斐波纳契数列 (C语言代码)浏览:1165 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:595 |
【出圈】 (C语言代码)浏览:553 |
C语言训练-排序问题<1> (C语言代码)浏览:599 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:603 |