Написать программу с использованием классов ** С++. Дано натуральное число n (n<10000)....

0 голосов
13 просмотров

Написать программу с использованием классов на С++. Дано натуральное число n (n<10000). Определить сколько цифр в числе, чему равна сумма его цифр, найти последнюю цифру числа. На СИ++, не на паскаль


Информатика (514 баллов) | 13 просмотров
Дан 1 ответ
0 голосов

#include
#include
using namespace std;

class NumHandler
{
int number;

public:
NumHandler(int n): number(n) {}

int getDigitCount()
{
int ret = 1, tested = 1, div;
while (true) {
div = (int) number / tested;
if (div == 0) {
return ret - 1;
}
else {
ret++;
tested *= 10;
}
}
}

int getDigitSum()
{
int ret = 0,
tenMult = pow(10, getDigitCount() - 1),
div;
while (tenMult >= 1) {
div = (int) number % (tenMult * 10) / tenMult;
ret += div;
tenMult /= 10;
}
return ret;
}

int getLastDigit()
{
return number % 10;
}
};

int main()
{
int num;
cout << "n = ";<br> cin >> num;
NumHandler handler(num);
cout << endl;<br> cout << "Число цифр: " << handler.getDigitCount() << endl;<br> cout << "Сумма цифр: " << handler.getDigitSum() << endl;<br> cout << "Последняя цифра: " << handler.getLastDigit() << endl;<br> return 0;
}

(7.2k баллов)