Сумма цифр числа
Первое — постоянно берем остаток от деления на 10. Делим на 10, пока наше число не превратится в 0:
while (number) < sum += number % 10; number /= 10; >
Второе — перевести число в строку и пройтись циклом по всей строке, суммируя при этом цифры:
sprintf(str, "%d", number); for(int i = 0; i < strlen(str); i++) sum += str[i] - '0';
Отслеживать
11.5k 8 8 золотых знаков 42 42 серебряных знака 69 69 бронзовых знаков
ответ дан 26 сен 2011 в 17:01
Sergii Kozlov Sergii Kozlov
2,468 16 16 серебряных знаков 13 13 бронзовых знаков
i < strlen(str) - не надо так делать, длина вычисляется каждый раз.
1 июл 2016 в 7:27
- алгоритм
- c++
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
C++ Как найти сумму цифр числа?
Введем число
Инвентируем его в текст. получилось множество!
присваиваем целочисленной переменной нулевое значение этого множества (А) инвентированного опять в число!
Прогоняем цикл от 1 до конец числа
А =+ прибовляем инвентированное символьное число в целое
Конец цикла
Выводим А на экран!
Подсказка: кроме простого деления (/) существует деление с отбрасыванием того, что слева от запятой (%, зависит от языка)
Например:
45 / 10 = 4,5
45 % 10 = 5
Дальше сам додумаешься.
int n = 111111;
int sum = 0;
while (n)
<
sum += n % 10;
n /= 10;
>
#include
#include
main()
int n, count, baggage, m;
printf("Vvedite celoye chislo\n");
scanf("%d",&n);
count=0;
while(n!=0)
< m=n;
m%=10;
count+=m;
n/=10;
>
printf("V chisle %d summa cifr ravna %d", n, count);
getch();
>
Количество и сумма цифр числа на C++
Подсчет количества цифр целого числа Примеры:
123 – 3 цифры.
45677 – 5 цифр. Подход к решению такой:
1. если число отрицательное – то меняем знак;
2. заводим счетчик, изначально равный нулю;
3. делим число на 10 без остатка, например при делении 123 на 10 получится 12. Таким образом, мы “отбросили” младший разряд (цифру);
4. увеличиваем счетчик (ведь одну цифру отбросили);
5. если число больше нуля – переходим на п. 2.
6. счетчик содержит результат работы программы. Исходный код программы:
#include int digitsCount(int n) < if (n < 0) < n = -n; >int count = 0; while (n != 0) < n /= 10; count++; >return count; > int main()
Вычисление суммы цифр числа можно сделать так: 1) Преобразовать число в строку (различными способами) и найти сумму символов в ней; 2) Использовать операцию получения остатка от деления деления на 10 (вернет младший разряд числа) и целочисленного деления на 10 (эквивалентна сдвигу числа вправо) – такой подход уже использовался выше при вычислении количества цифр.
int digitsSum(int n) < int sum = 0; while (n != 0) < sum += n % 10; n /= 10; >return sum; >
Просмотр 0 веток ответов
Как найти сумму цифр числа в c
вообще полностью задача выглядит так определить сумму и количество цифр его сотовляюжих, кол-во я нашел, а вот с суммой проблема
вот что пробовал писать:
int main(int argc, char *argv[]) >a; for (c=0;a>10;c++) a=a/10; c=c+1; cout>g; for (h=0;g>10;h+g) g=g/10; cout
памагите кто небудь разобраться со втарой частию! найти сумму чисел состовляющих числа.
Модератор: тег CODE
Последний раз редактировалось MaTBeu; 26.12.2008 в 17:44 .