Result | TIME Limit | MEMORY Limit | Run Times | AC Times | JUDGE |
---|---|---|---|---|---|
3s | 16384K | 1552 | 578 | Standard |
Draw a diamond shape with character '*'.
Input
There are several lines in the input, each line is a integer N(N<100), N is zero means the end of input.
Output
For each line of input, draw a diamond whose width is N like sample. Notice there is no unnecessary spaces after '*' in the same line.
Output a blank line after each case.
Sample Input
3 0
Sample Output
* *** ***** *** *
/* 本人代码: #include<iostream> #include<string> using namespace std;
int main() { int i, n; while(cin>>n,n) { for(i=1;i<n;i++) { cout<<string((n-i),' '); cout<<string(2*i-1,'*')<<endl; } for(i=n;i>=1;i--) { cout<<string((n-i),' '); cout<<string(2*i-1,'*')<<endl; } cout<<endl; } return 0; }*/
#include<stdio.h> #include<memory.h> char s1[201],s2[201]; int main() { int n,i,p,k,temp,x,y; memset(s1,' ',sizeof(s1)); memset(s2,'*',sizeof(s2)); s1[200]=s2[200]='\0'; while(scanf("%d",&n),n) { k=n*2-1; for(i=1,p=n-1;i<=k;i++,p--) { x=p>0?p:-p; temp=i<n?n-i:i-n; y=(n-temp)*2-1; printf("%s",s1+200-x); puts(s2+200-y); } putchar('\n'); } return 0; }