Czy ktos moglby podsunac pomysl jak sprawdzic najmniejsza sume cyfr liczby trzycyfrowej. Mam zalozmy 5 liczb trzycyfrowych i chce zeby program wypisal mi ta ktore suma tych cyfr jest najmniejsza? Jakies pomysly, sciezki? Nie chce gotowca tylko jakas wskazowke.
0
2
Cyfra jedności liczby a
to a % 10
. Aby wyznaczyć kolejne cyfry, wystarczy dzielić a / 10
, np. (a / 10) % 10
to cyfra dziesiątek, a (a / 100) % 10
to cyfra setek. Można dzielić w ten sposób tak długo, aż po podzieleniu (ale jeszcze przed modulo) dostaniesz zero - wtedy cyfry w liczbie się już skończyły.
Da się też zrobić pętlą while
, wtedy będzie działać dla liczb o dowolnej ilości cyfr (pseudokod):
int suma = 0;
while (a != 0) {
suma += a % 10;
a /= 10;
}
Dalej sobie poradzisz.
0
Ew
#include <iostream>
#include <string>
#include <numeric>
using namespace std;
int main() {
string num = "12983";
cout << accumulate(begin(num), end(num), -'0'*num.size()) << endl;
return 0;
}
Ps. Gdybyś nie musiał podawać konkretnej wartości, a jedynie porównać te sumy - mógłbyś porównywać sumy znaków ascii bez zamiany ich na cyfry.