Алгоритмы на С++
Решение задачи 2 главы 1
Разбить последовательность чисел от 1 до \(N^2\) на \(N\) подпоследовательностей так, чтобы все они состояли из \(N\) чисел и имели равные суммы. Если решений несколько, то вывести любое из них.
Вход. Целое число от 1 до 200 (на клавиатуре).
Выход. \(N\) строк, содержащих по \(N\) возрастающих чисел, разделенных пробелами (на экране). Порядок, в котором выводятся подпоследовательности, роли не играет.
Примеры.
Вход: 1; выход: 1.
Вход: 3; выход:
1 5 9
2 6 7
3 4 8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
void itmathrepetitor() { // www.itmathrepetitor.ru int n; cout<<"input n: "; cin>>n; for (int i=1; i<=n; i++) { int j=i; while (j%n) { cout<<j<<" "; j+=n+1; } cout<<j<<" "; if (j!=n*n) { j++; while (j+n+1<n*n) { cout<<j<<" "; j+=n+1; } cout<<j<<endl; } else {// www.itmathrepetitor.ru cout<<endl; } } cout<<"sum = "<<n*(n*n+1)/2<<endl; } |