Pular para o conteúdo

Soma dos dígitos de um número decimal

A função do programa é somar os dígitos de um número decimal, por exemplo, a soma dos dígitos de 25 é (2+5) = 7

Programa simples, mas que pode ser útil para muitas pessoas.
Oberlan C. Romão oberlan
Hits: 15.323 Categoria: C/C++ Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Descrição

A função do programa é somar os dígitos de um número decimal, por exemplo, a soma dos dígitos de 25 é (2+5) = 7

Programa simples, mas que pode ser útil para muitas pessoas.
Download somadigitos.cpp Enviar nova versão
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Esconder código-fonte

#include <iostream>
#include <cmath>

using namespace std;

int soma_digitos(int num){
    int soma = 0;
    if(abs(num)<10) return num;
    else return num%10 + soma_digitos(num/10);
}

int main(){
    int n;
    cin >> n;
    while(n>0){
        cout << "A soma dos digitos de " << n << " eh: " << soma_digitos(n) << endl;
        cin >> n;
    }
    return 0;
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Tabela ASCII

Aplicação

Caixa de lanchonete

Cálculo de média ponderada

Lista Simples em C

#1 Comentário enviado por leandrox em 29/05/2010 - 13:36h
Apareceu o seguinte erro:


somadigitos.cpp: In function ‘int soma_digitos(int)’:
somadigitos.cpp:8: error: call of overloaded ‘abs(int&)’ is ambiguous
/usr/include/c++/4.4/cmath:94: note: candidates are: double std::abs(double)
/usr/include/c++/4.4/cmath:98: note: float std::abs(float)
/usr/include/c++/4.4/cmath:102: note: long double std::abs(long double)
#2 Comentário enviado por oberlan em 29/05/2010 - 14:10h
Bom eu testei aqui e nao deu esse problema, mas você pode remover o 'abs(num)'.
Aproveitando fiz uma versão mais completa, agora pode ser com números negativos:


#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int soma_digitos(int num){
int soma = 0;
if(num < 10) return num;
else return num%10 + soma_digitos(num/10);
}

int main(){
int n;
cin >> n;
while(n != 0){
cout << "A soma dos digitos de " << n << " eh: " << soma_digitos( abs(n) ) << endl;
cin >> n;
}
return 0;
}
#3 Comentário enviado por leandrox em 29/05/2010 - 14:17h
Legal!
Deu certo.
Vlw...
#4 Comentário enviado por oberlan em 29/05/2010 - 14:18h
Vlw por ter avisado do erro ;)
Espero ter ajudado!

Contribuir com comentário

Entre na sua conta para comentar.