Перейти к содержимому

Как найти сумму цифр числа в c

  • автор:

Количество и сумма цифр числа на 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 веток ответов

Сумма цифр числа

Первое — постоянно берем остаток от деления на 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.3.2953

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как найти сумму цифр числа в c

Най дите сумму цифр целого числа n.

Вход. Одно целое 32-х разрядное число n (число может быть отрицательным).

Выход. Выве дите сумму цифр числа n .

Пример входа

Пример выхода

РЕШЕНИЕ

элементарная задача

Входное число может быть отрицательным. В таком случае изменим его знак.

Реализуем рекурсивную функцию sum(n), вычисляющую сумму цифр числа n, согласно рекурсивной схеме:

· иначе вычисляем сумму цифр числа n / 10 и прибавляем к нему последнюю цифру n % 10 числа n.

Задачу можно также решить при помощи цикла (без использования рекурсии).

Реализуем функцию sum по приведенной выше рекурсивной схеме.

return n % 10 + sum(n / 10);

Основная часть программы. Читаем входное число n. Если оно отрицательно, то установим его значение на противоположное.

Вычисляем и выводим сумму цифр числа n.

Реализация алгоритма – итерация

В переменной sum находим сумму цифр числа n .

Перебираем цифры числа n . Прибавляем каждую цифру числа n к сумме sum .

sum = sum + n % 10;

import java.util.*;

public class Main

static int sum( int n)

return n % 10 + sum(n / 10);

public static void main(String[] args)

Scanner con = new Scanner(System. in );

int n = con.nextInt();

int res = sum(n);

System. out .println(res);

n = int(input()) 
if n  0: n = -n; 
sum = 0 
while n > 0: 
 sum = sum + n % 10; 
 n = n // 10; 
print(sum) 

Python реализация – функция

return sum(n // 10 ) + n % 10

n = int(input()) 
if n  0 : n = -n 
s = map(int,list(str(n))) 
print(sum(s)) 

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();
>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *