倒数字三角形【***】 - NOTEBOOK
倒数字三角形【***】
C++Posted on 2023-08-10
摘要 : 学会理解二维数组、多重for套嵌
❱ 描述:
以下的数字倒直角三角形是由二个数确定的:一个数是行数R,1<=R<=39,另一个是种子数S,1<=S<=9。S放在左上角,照着样例输出文件的样子,写一个程序,根据输入的二个数打印出相应的数字倒直角三角形。
❱ 输入描述:
单独一行,二个用空格隔开的整数
❱ 输出描述:
输出倒直角数字三角形,输出时数字与数字之间不留空格字符。
❱ 用例输入:
6 1
❱ 用例输出:
用例输出:
124727
35838
6949
151
62
3
❱ 简单办法
垂直方向来依次输入数据
#include<iostream>
using namespace std;
int main() {
int m,n; // 定义 行,列
cin>>m>>n;
int a[m+2][m+2]={0}; // 二维数组初始化
for(int j=1;j<=m;j++){ // 垂直方向来依次输入数据,所以从 j 开始
for(int i=1;i<=m;i++){ // 这里也可以修改成 i<=j;
if(j<=i-1){ // 如果上面修改成 i<=j; 那这句就可以不要。
continue;
}
a[i][j] = n;
n++;
if(n>9){
n=1;
}
}
}
// 打印矩阵
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
if(a[i][j]!=0){
cout << a[i][j]; // 依次打印每一行,用空格隔开。
}else{
cout << " ";
}
}
cout<<endl; // 每一行结束,打印换行符号。
}
}
❱ 横向输入数据,需要找出数据变化关系【复杂】
#include<iostream>
using namespace std;
int main() {
int m,n; // 定义 行,列
cin>>m>>n;
int a[m+2][m+2]={0}; // 二维数组初始化
int k; // 一行种格子的变化
for(int i=1;i<=m;i++){
k = n;
for(int j=1;j<=m;j++){
if(j<=i-1){ // 跳开前面空白格
continue;
}
a[i][j] = k%9 ? k%9 : 9;
k = k+j;
}
n = n+i+1;
}
// 打印矩阵
for(int i=1;i<=m;i++){
for(int j=1;j<=m;j++){
if(a[i][j]!=0){
cout << a[i][j]; // 依次打印每一行,用空格隔开。
}else{
cout << " ";
}
}
cout<<endl; // 每一行结束,打印换行符号。
}
}