NC214626. 输出图形
描述
输入描述
第一行一个正整数T表示测试数据组数(1≤T≤103)。
接下来T行,每行一个整数n,代表正方形的边长(3<=n<=1000)。
输出描述
输出操作完后图形,每个图形之间相隔一行。
示例1
输入:
2 4 3
输出:
**** ** * * * * *** * * *
C 解法, 执行用时: 10ms, 内存消耗: 2700K, 提交时间: 2021-11-08 22:58:55
#include<stdio.h> #define MAXN 1001 int main() { int t; char a[MAXN][MAXN]; scanf("%d",&t); while(t--) { int n,k,l,i; scanf("%d",&n); for(k=1;k<=n;k++) for(l=1;l<=n;l++) a[k][l]='*'; int p=1; if(n%5==0) p=5; if(n%2==0) { for(k=n;k>1;--k) for(l=n-k+1;l<=n-1;++l) a[k][l]=' '; } else { for(k=2;k<=n;++k) for(l=2;l<=k;++l) a[k][l]=' '; } for(;p<=n;p++) { for(i=1;i<=n;i++) putchar(a[p][i]); putchar('\n'); } putchar('\n'); } return 0; }
C++(clang++11) 解法, 执行用时: 42ms, 内存消耗: 1912K, 提交时间: 2021-03-14 10:50:01
#include<bits/stdc++.h> using namespace std; typedef long long ll; int main() { int x; int n; int T; cin>>T; while(T--){ cin>>n; if(n%5==0) { x=4; }else{ x=0; } if (n%2==0) { for (int i=x;i<n;i++) { for (int j=i;j<n-1;j++) { cout<<"*"; } for (int j=0;j<i;j++) { cout<<" "; } cout<<"*"<<endl; } } else { for (int i=x;i<n;i++) { cout<<"*"; for (int j=0;j<i;j++) { cout<<" "; } for (int j=i;j<n-1;j++) { cout << "*"; } cout<<endl; } } cout<<endl; } }