Problem I: 打印字母菱形图案
Time Limit: 1 Sec Memory Limit: 2 MB
Submit: 633 Solved: 246
[Submit][Status][Web Board]
Description
从键盘输入一个整数n(1≤n≤10),打印出指定的数字图形。
Input
正整数n(1≤n≤10)。
Output
指定的数字图形,参看样例。注意最右侧数字后面有空格,直到与最长的一行对齐。
Sample Input
6
Sample Output
1
515
54145
5431345
543212345
11111111111
543212345
5431345
54145
515
1
HINT
Append Code
用坐标法比较简便!!!!!
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=-(n-1); i<=(n-1); i++)
{
for(j=-(n-1); j<=(n-1); j++)
{
if(i==0||j==0)
printf("1");
else if( abs(i) + abs(j) <= (n-1))
printf("%d",abs(i)+abs(j));
else
printf(" ");
}
printf("\n");
}
}
然后贴一下麻烦的!!
#include <stdio.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=0; i<n-1; i++)
{
for(k=0; k<n-i-1; k++)
{
printf(" ");
}
for(k=0; k<i; k++)
{
printf("%d",n-1-k);
}
printf("1");
for(k=0; k<i; k++)
{
printf("%d",n-i+k);
}
for(k=0; k<n-i-1; k++)
{
printf(" ");
}
printf("\n");
}
for(i=0; i<2*n-1; i++)
{
printf("1");
}
printf("\n");
for(i=0; i<n-1; i++)
{
for(j=0; j<i+1; j++)
{
printf(" ");
}
for(j=0; j<n-2-i; j++)
{
printf("%d",n-1-j);
}
printf("1");
for(j=0; j<n-2-i; j++)
{
printf("%d",i+2+j);
}
for(j=0; j<i+1; j++)
{
printf(" ");
}
printf("\n");
}
}