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
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
Giải:


#include<iostream>
using namespace std;

int a[100][100];
int n;

void input(){
 cin >> n;
}

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

int main(){
 input();
 output();
}
// chuc b hoc tot N.L

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ố

Kiểm tra 3 số có tạo thành một tam giác hay không?

Số đẹp tăng giảm