文章

1

粉丝

0

获赞

4

访问

552

头像
字符棱形 题解:
P1473 杭州电子科技大学机试题
发布于2025年2月25日 16:13
阅读数 552

用abs(), 可读性差一点

空格以n为轴,所以是abs(i-n+1)

每一行左半边*的数量和空格数量的和为n,所以是n-abs(),再*2-1

#include <iostream>
#include <cmath>
#include <string>
using namespace std;

void diamond(int n) {
    for (int i = 0; i < 2*n-1; i++) {
        cout << string(abs(i - n + 1), ' ')
             << string(2*(n-abs(i-n+1)) - 1, '*')
             << endl;
    }
}

int main() {
    int n;
    cin >> n;
    diamond(n);
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发