Grade 9 · Number sequences read one at a timeCitește în română
Reading a sequence terminated by 0
Original: Citirea unui șir terminat cu 0
The idea
We do not know in advance how many numbers follow: we read up to the first 0, which only marks the end and is not part of the sequence. The program prints how many numbers were read and their sum. One read happens before the loop and then another at the end of every step.
Original description (Romanian)
Nu știm dinainte câte numere urmează: citim până la primul 0, care doar marchează sfârșitul și nu face parte din șir. Se afișează câte numere s-au citit și suma lor. Citirea se face o dată înainte de buclă și apoi la finalul fiecărui pas.
- Complexity
- O(n), where n is the number of values before the 0
- Grade
- Grade 9 (Clasa a IX-a)
Examples
Input
4 7 -2 5 0
Expected output
4 14
Input
0
Expected output
0 0
The code
Comments are in Romanian, as in the original collection. Edit freely: you can reset at any time.
/*
* Titlu: Citirea unui șir terminat cu 0
* Clasa: 9
* Capitol: Șiruri de numere citite pe rând
* Descriere: Nu știm dinainte câte numere urmează: citim până la primul 0,
* care doar marchează sfârșitul și nu face parte din șir. Se afișează
* câte numere s-au citit și suma lor. Citirea se face o dată înainte
* de buclă și apoi la finalul fiecărui pas.
* Complexitate: O(n), unde n este numărul de valori de dinainte de 0
*
* Exemplu
* Intrare: 4 7 -2 5 0
* Ieșire: 4 14
*
* Exemplu
* Intrare: 0
* Ieșire: 0 0
*/
#include <iostream>
using namespace std;
int main()
{
long long x, suma = 0;
int numar = 0;
cin >> x;
while (x != 0)
{
numar++;
suma = suma + x;
cin >> x;
}
cout << numar << ' ' << suma << '\n';
return 0;
}
Runs on a real g++ (C++17, -O2) through Compiler Explorer. Keep runs short; there's a time limit.