1025 - 打印数字图形
时间限制 : 1 秒
内存限制 : 32 MB
先要求你从键盘输入一个整数n(1<=n<=9),打印出指定的数字图形。
题目输入
输入包含多组测试数据。每组输入一个整数n(1<=n<=9)。
题目输出
对于每组输入,输出指定的数字图形。
注意:每行最后一个数字后没有任何字符。
输入/输出样例
输入格式
5
输出格式
1
121
12321
1234321
123454321
1234321
12321
121
1
C语言解答
#include<stdio.h> int main() { int i,j,n; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=i;j<n-1;j++) printf(" "); for(j=0;j<=i;j++) printf("%d",j+1); for(j=i;j>0;j--) printf("%d",j); printf("\n"); } for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(" "); for(j=0;j<n-i;j++) printf("%d",j+1); for(j=n-i-1;j>0;j--) printf("%d",j); printf("\n"); } } return 0; }
C++解答
#include<stdio.h> int main() { int i,j,n; while(scanf("%d",&n)!=EOF) { for(i=0;i<n;i++) { for(j=i;j<n-1;j++) printf(" "); for(j=0;j<=i;j++) printf("%d",j+1); for(j=i;j>0;j--) printf("%d",j); printf("\n"); } for(i=1;i<=n-1;i++) { for(j=1;j<=i;j++) printf(" "); for(j=0;j<n-i;j++) printf("%d",j+1); for(j=n-i-1;j>0;j--) printf("%d",j); printf("\n"); } } return 0; }
Java解答
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int n = in.nextInt(); String[] ss = new String[n]; for(int i=0;i<n;i++){ StringBuffer sb = new StringBuffer(); for(int j=0;j<i;j++)sb.append(" "); int cou = 1; for(int j=i;j<n;j++){ sb.append(cou); cou++; } cou-=2; while(cou>0){ sb.append(cou); cou--; } ss[i] = sb.toString(); } for(int i=n-1;i>0;i--)System.out.println(ss[i]); for(int i=0;i<n;i++)System.out.println(ss[i]); } } }
Python解答
import sys for line in sys.stdin: data = int(line.split()[0]) for i in range(1,data+1): a = ''.join([str(j) for j in range(1,i+1)]) b = ''.join([str(j) for j in range(1,i)[::-1]]) print ' '*(data-i)+a+b for i in range(1,data)[::-1]: a = ''.join([str(j) for j in range(1,i+1)]) b = ''.join([str(j) for j in range(1,i)[::-1]]) print ' '*(data-i)+a+b