C/C++

Помогите с заданием.с++

Требуется написать программу, которая находит сумму и произведение цифр трёхзначного числа x.

Формат входных данных
Входной поток содержит одно целое число x (100≤x≤999).
Формат выходных данных
Требуется в одной строке вывести два числа — сумму и произведение цифр числа x в соотвественном порядке.
Могу на пыхе или джаве наваять.
АО
Алена Ордина
21 258
Лучший ответ
#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
using ullong_t = unsigned long long;
vector<unsigned> split(ullong_t n) {
static const auto ten = 10ULL;
vector<unsigned> box;
do box.push_back(static_cast<unsigned>(n % ten)); while (n /= ten);
return box;
}
unsigned sum(const vector<unsigned>& box) {
return accumulate(box.begin(), box.end(), 0U);
}
ullong_t product(const vector<unsigned>& box) {
return accumulate(box.begin(), box.end(), 1ULL, multiplies<>());
}
int main() {
cout << "Positive number: ";
ullong_t n;
cin >> n;
auto box = split(n);
auto s = sum(box);
cout << "Sum: " << s << '\n';
auto p = product(box);
cout << "Product: " << p << '\n';
system("pause > nul");
}
#include< iostream >
using namespace std;

int main()
{
int a,pr =1,su = 0;
setlocale(LC_ALL, "ru");
cout << "Введите число\n";
while (1) {
cin >> a;
if (a >=100 && a <= 999) break; else cout << "Число должно быть от 100 до 999, введите еще раз" << endl;
}
for (int i = 0; i < 3; i++) {
pr *= a % 10;
su += a % 10;
a /= 10;
}
cout << "сумма = " << su << endl;
cout << "произведение = " << pr << endl;
}
Андрей Гунькин
Андрей Гунькин
51 411