EN C++, considereu aquest programa (del qual s’han suprimit les inclusions):
void escriu(int n) {
if (n > 0) {
cout << ' ' << n;
escriu(n - 1);
escriu(n - 1);
}
}
int main() {
int n;
while (cin >> n) {
escriu(n);
cout << endl;
}
}
En Python, considereu aquest programa:
from yogi import tokens
def work(n: int) -> None:
if n > 0:
print(' ', n, end='')
work(n - 1)
work(n - 1)
def main() -> None:
for n in tokens(int):
work(n)
print()
main()
A l’exemple d’entrada i de sortida d’aquest exercici veureu què escriu aquest programa per a cada nombre llegit.
Sense modificar gens el @main()@, reimplementeu el procediment @escriu(n)@ sense fer cap crida, recursiva o no, de manera que la sortida del programa no canviï.
L’entrada consisteix en diversos naturals estrictament positius.
Per a cada nombre, escriviu una línia idèntica a l’escrita pel programa donat.
Per resoldre aquest exercici, els únics contenidors que hauríeu d’usar són piles.
Input
1 2 3 4
Output
1 2 1 1 3 2 1 1 2 1 1 4 3 2 1 1 2 1 1 3 2 1 1 2 1 1