1 条题解
-
0
C :
#include<stdio.h> int main() { int n,i,j,a; while(1) { scanf("%d",&n); if (n%2==1&&n>=1&&n<=99) {break;} } for(i=1;i<=n/2+1;i++) { for(a=i;a<=n/2;a++) { printf(" "); } for(j=1;j<=2*(i-1)+1;j++) { printf("*"); } printf("\n"); } i-=2; for(;i>0;i--) { for(a=i;a<=n/2;a++) { printf(" "); } for(j=1;j<=2*(i-1)+1;j++) { printf("*"); } printf("\n"); } return 0; }C++ :
#include <iostream> #include <cmath> using namespace std; int main() { int n; cin >> n; int cx = n / 2, cy = n / 2; // 求出曼哈顿公式中的x1,y1 for (int i = 0; i < n; i ++ ) { for (int j = 0; j < n; j ++ ) if (abs(i - cx) + abs(j - cy) <= n / 2) cout << '*'; // <=号前面的值就是这个点和中心的曼哈顿距离,如果他小于n/2,则可以输出 else cout << ' '; // 不可以输出补空格 cout << endl; } return 0; }
- 1
信息
- ID
- 626
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 提交数
- 74
- 已通过
- 28
- 上传者