В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
алтуша9796
алтуша9796
05.01.2021 13:39 •  Информатика

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

Ответ:
vanyu2312122
vanyu2312122
31.08.2020 22:37
#include <iostream>
#include <math.h>
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 = ";
cin >> num;
NumHandler handler(num);
cout << endl;
cout << "Число цифр: " << handler.getDigitCount() << endl;
cout << "Сумма цифр: " << handler.getDigitSum() << endl;
cout << "Последняя цифра: " << handler.getLastDigit() << endl;
return 0;
}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?