Suma cyfr

0

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.

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;
}

http://ideone.com/H5BY84

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1