Dạng bài tập về vẽ hình bằng số

Đề bài: 
Viết chương trình nhập vào n và in ra hình theo quy luật
INPUT
5
OUTPUT
1 2 3 4 5
2 1 2 3 4
3 2 1 2 3
4 3 2 1 2
5 4 3 2 1
Giải:


#include<iostream>
using namespace std;
int a[100][100];
int n;
int d = 1;
int r = 0;
void input() {
 cin >> n;
}

void output() {
 while(r<n) {
  for(int i = r; i < n-r-1; i++) {
   a[r][i] = d++;
  }
  for(int i = r; i < n-r-1; i++) {
   a[i][n-r-1] = d--;
  }
  for(int i = n-r-1; i >= r+1; i--) {
   a[n-r-1][i] = d++;
  }
  for(int i = n-r-1; i>= r+1; i--) {
   a[i][r] = d--;
  }
  r++;
 }
 if(n % 2 != 0) {
  a[n/2][n/2] = 1;
 }
 for(int i = 0; i < n; i++) {
  for(int j = 0; j < n; j++)
   cout << a[i][j] << " ";
  cout << endl;
 }
}
int main() {
 input();
 output();
}

Nhận xét

Bài đăng phổ biến từ blog này

Đổi chỗ chữ số đầu tiên và chữ số cuối cùng của một số

Số đẹp tăng giảm

Tìm số Strong trong khoảng cho trước