Witaj zająłem się tym zadaniem z ciekawości i udało mi się napisać kod który uzyskał maksymalną liczbę punktów przy teście. Może nie jest on najładniejszy i najczytelniejszy, ale nie posiadam jeszcze umiejętności pisania przejrzystego kodu dla innych. Postarałem się go jak najlepiej opisać. Jeżeli dalej nie uporałeś się z zadaniem to przeanalizuj to jak go stworzyłem, zobacz jak działa i napisz coś na jego zasadzie.
#include <iostream>
using namespace std;
int main()
{
int n, liczba = 1; // zmienna liczba przyjmuje na poczatku wartosc 1, poniewaz musimy zaczac od 1.
cin >> n;
int pomocnicza = n -1 ; // wazne jest zeby zainicjowac dopiero po wprowadzeniu wartosci do zmiennej n.
bool zmiana = true; // prosty przelacznik zeby wypisywac liczby na przemian od najwiekszej i od najmniejszej.
for (int i = 0; i<n; i++)// petla na ilosc wierszy
{
for (int j = n; j>0; j--) // petla na dlugosc wiersza
{
if(zmiana)// petla wykonujaca sie dla nieparzystych numerow wiersza wypisujaca liczby od najmniejszej
{
cout << liczba << " " ; // wypisywanie liczb od najmniejszej
}
else // ta petla wykonuje sie dla parzystych numerow wierszy
{
cout << liczba+pomocnicza << " " ; // tu nastepuje zwiekszenie naszej liczby o pomocnicza(n-1)
pomocnicza-=2; // zmniejszamy ja o 2 dlatego ze jednoczesnie na dole zwiekszamy nasza zmienna liczba przez co ciagle zachowujemy zasade.
}
liczba++; // naturalne zwiekszenie zmiennej liczba o 1;
}
pomocnicza= n - 1; // przywrocenie zmiennej pomocnicza do pierwotnego stanu aby kontynuowac nasze wypisywanie
cout << endl; // to sluzy jako przerwanie przejscie do nowego wiersza
zmiana = !zmiana; // tu zmieniamy na przemian nasze wypisywanie liczb;
}
}