解题思路:
从题目中我们知道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语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:481 |
【计算两点间的距离】 (C语言代码)浏览:927 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:724 |
简单的a+b (C语言代码)浏览:564 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:624 |
DNA (C语言代码)浏览:837 |
C语言程序设计教程(第三版)课后习题12.3 (C语言代码)浏览:587 |
C二级辅导-等差数列 (C语言代码)浏览:831 |