/* Sap xep n nguoi vào 1 bàn tròn, Valkirie code */ #include #include const int array_size = 10; int n, index; void insert_item_into_array(int numbers[array_size], int size, int item, int position ) { for (int i = size; i > position; i--) { numbers[i] = numbers[i-1]; } numbers[position] = item; } void print( int numbers[array_size], int size ) { index++; cout << "Cach sap xep thu " << index << "\n\t"; for (int i = 0; i < size; i++) { cout << setw(3) << numbers[i] + 1; } cout << endl; cin.get(); } void swap ( int &first_num, int &second_num ) { int temp = first_num; first_num = second_num; second_num = temp; } void insert( int numbers[array_size], int step ) { // Neu da chen du so nguoi thi in ket qua ra va tro ve trang thai truoc do if (step >= n ) { print( numbers, step); return; // thay cho if else, return chõ này là out khoi hàm. } int temp[array_size]; // luu mang number lai for ( int i = 0; i <= step; i++ ) temp[i] = numbers[i]; int position = step; insert_item_into_array( numbers, step, step, position ); do { // chuyen sang xet trang thai (step+1) voi mang numbers gom step + 1 so insert( numbers, step +1 ); if (position > 1) { swap( numbers[position-1], numbers[position]); } position--; } while (position >= 1); // phuc hoi mãng for ( i = 0; i <= step; i++ ) numbers[i] = temp[i]; } void main() { int numbers[array_size]; cout << "Moi ban nhap so nguoi, n > 3: "; cin >> n; for ( int i = 0; i < 3; i++ ) numbers[i] = i; index = 0; insert(numbers ,3); }