东方博宜OJ 1008:字符图形9-数字正三角

【题目来源】
https://oj.czos.cn/p/1008
https://oj.czos.cn/p/1068

【题目描述】
输入一个整数打印字符图形。

【输入格式】
一个整数(0<n<10)。

【输出格式】
一个字符图形。

【输入样例】
9

【输出样例】

        1
       222
      33333
     4444444
    555555555
   66666666666
  7777777777777
 888888888888888
99999999999999999

【数据范围】
0<n<10

【算法分析】
此类输出字符图形的问题,通常可通过观察找规律后,编码解决。
观察下图可知,每行需输出 n+i-1 个元素,其中含 n-i 个空格
boyi1008
​​​​​​​【算法代码一】

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=n+i-1; j++) {
            if(j<=n-i) cout<<" ";
            else cout<<i;
        }
        cout<<endl;
    }

    return 0;
}

【算法代码二】

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        for(int k=1; k<=n-i; k++) cout<<" ";
        for(int k=1; k<=2*i-1; k++) cout<<i;
        for(int k=1; k<=n-i; k++) cout<<" ";
        cout<<endl;
    }
    return 0;
}

在算法代码二的基础上,可以得出“东方博宜1006(https://oj.czos.cn/p/1006)”的代码。

#include<bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin>>n;
    for(int i=1; i<=n; i++) {
        for(int j=1; j<=3; j++) {
            for(int k=1; k<=n-i; k++) cout<<" ";
            for(int k=1; k<=2*i-1; k++) cout<<"*";
            for(int k=1; k<=n-i; k++) cout<<" ";
        }
        cout<<endl;
    }
    return 0;
}




【参考文献】
/




 

posted @ 2026-02-08 13:25  Triwa  阅读(64)  评论(0)    收藏  举报