30/09/2018, 16:12
In ra mảng ziczac
Mình mới nhập môn có bài deadline về hàm lặp như thế này:
Làm sao để suất ra:
1 10 11 20 21
2 9 12 19 22
3 8 13 18 23
4 7 14 17 24
5 6 15 16 25
Từ facebook
Bài liên quan
Sửa biến size = 10 sẽ in ra được
hại não ghê
a thử mô tả thuật toán đi
Duyệt cột > hàng
for(int cot = 0; cot < size; ++cot)
for(int hang = 0; hang < size; ++hang)
nếu cột chẵn (0, 2, 4, …)
thì arr[hang][cot] = hàng + cột * size + 1
nếu cột lẻ (1,3, 5, …)
thì arr[hang][cot] = (cột +1) * size - hàng
Anh nhìn vào cái đề thì anh thấy có sự liên quan như vậy thôi mà, em để ý thử đi.
theo công thức của a Đạt ta sẽ cho for chạy từng cột chứ không phải chạy hàng ngang như thông thường.
Đối với cột là chẵn tính từ cột 0-> cột 4
ta có giá trị cột 4 (a[0][4] ) : 21 = (hàng,cột, size) thực hiện. 21 = 21 - 20 ( 4 *5 ) thấy có 4=cột và 5 bằng size thiếu 1 thì ta + thêm 1, thiếu hàng + hàng = 0 =>cột chẵn = cột * size + 1 + hang
Đối với cột là lẻ tính từ cột 0-> cột 3
ta có giá trị cột 3( a[0][3] ) : 20 = (hàng, cột, size) thực hiện 20 => trong phép tính cột chẵn ta thấy xuất hiện cột, size, phép nhân và số 1. tương tự ta có : cột lẻ = (cột size hàng 1 ) => 0 + 1-3-5 = 20 vậy
cột lẻ 20 = (1+3)*5 + 0 = (1+ số cột) *size + hàng
Tiếp theo là duyệt mảng lại lần cuối chèn khoảng trắng và xuống hàng!!!
suy nghĩ cả nửa tiếng mới hiệu cách nó chạy. Hại não