Jes to zadanie bardziej matematyczne niż programistyczne...
Chodzi o to by znaleźć wzór na n'ty element ciągu (an).
(an)=1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8...
Tak ort! funkcja obliczająca a(n) napisana w c++:
int a(int n){
int i=0,j=1;
for(int c=0;c<n;c++){
if(++i==j){
i=1;
j++;
}
}
return i;
}
Powyższy algorytm ma złożoność O(n).
Chodzi o to by napisać funkcję o złożoności O(1) (zakładając, że stałe typu pi, e itp mamy dane a funkcje typu x^y, ln(x), sin(x), x!, +, -, /, floor(), itp są procedurami elementarnymi).