Você está aqui: C ::: Dicas & Truques ::: Recursão (Recursividade)

Como calcular fatorial em C usando uma função recursiva

Quantidade de visualizações: 876 vezes
Sempre que estamos no assunto de recursão (ou recursividade), um dos primeiros exemplos que vêm à nossa mente é o cálculo de fatorial, pois seu entendimento é fácil e, dessa forma, podemos nos concentrar nos aspectos da função recursiva.

Na matemática, o fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.

O fatorial de um número n pode ser definido recursivamente da seguinte forma:

0! = 1;
n! = n x (n - 1)!; sendo n > 0


Entendida esta definição, veja agora o código C completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// função recursiva para calcular o fatorial de um número
int fatorial(int num) {
  // caso base
  if (num <= 1) {
    return 1;
  } 
  else {
    return num * fatorial(num - 1);
  }
}

int main(int argc, char *argv[]){
  int i;
	
  setlocale(LC_ALL,""); // para acentos do português

  // vamos calcular o fatorial dos número de 0 até 10
  for (i = 0; i <= 10; i++) {
    printf("\%2d! = %d\n", i, fatorial(i));
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}

Ao executar este código nós teremos o seguinte resultado:

 0! = 1
 1! = 1
 2! = 2
 3! = 6
 4! = 24
 5! = 120
 6! = 720
 7! = 5040
 8! = 40320
 9! = 362880
10! = 3628800


Note que aqui nós calculamos e exibimos o fatorial dos números de 0 até 10.

Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Strings e Caracteres

Como escrever uma função strtolower() para transformar uma palavra inteira em letras minúsculas usando a linguagem C

Quantidade de visualizações: 9865 vezes
O C padrão não possui uma função para transformar todas as letras de uma palavra em minúsculas, embora alguns compiladores a forneça.

O que temos é a função:

    
int tolower(int c);


que permite transformar um caractere em seu correspondente minúsculo. Podemos tirar vantagem disso e escrever uma função strtolower() personalizada. Veja a listagem logo abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
 
#include <stdio.h>
#include <stdlib.h>
 
void strtolower(char *string){
  while(*string){
    *string = tolower(*string);
    string++;
  }
}
 
int main(int argc, char *argv[])
{
  char frase[] = "PROGRAMANDO EM C";
  strtolower(frase);
   
  printf("%s\n\n", frase);
   
  system("PAUSE");  
  return 0;
}

Ao executar este código nós teremos o seguinte resultado:

programando em c
Pressione qualquer tecla para continuar...


C ::: Dicas & Truques ::: Rotinas de Conversão

Como converter uma string em um valor inteiro usando a função atoi() da linguagem C

Quantidade de visualizações: 46621 vezes
Em algumas situações, pode ser necessário converter uma string em um valor numérico inteiro. Para isso podemos usar a função atoi().

Esta função recebe uma matriz de caracteres e tenta transformá-la em um valor inteiro. Se a conversão não for possível, o valor 0 é retornado. Os sinais "+" e "-" são válidos na string a ser convertida. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

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

int main(int argc, char *argv[])
{
  // valor inteiro em forma de string
  char valor_str[] = "10";

  // A linha abaixo causa um comportamento estranho
  //int res = 40 + valor_str;

  // temos que converter a string em um valor inteiro válido
  int res = 40 + atoi(valor_str);

  printf("O resultado e: %d", res);

  puts("\n");
  system("pause");
  return 0;
}



C ::: Dicas & Truques ::: Matemática e Estatística

Como calcular MDC em C

Quantidade de visualizações: 23711 vezes
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada:

Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b.

O trecho de código abaixo mostra como calcular o MDC de dois números informados:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

// função que recebe dois inteiros e retorna
// o Máximo Divisor Comum dos dois 
int MDC(int a, int b){
  int resto;
 
  while(b != 0){
    resto = a % b;
    a = b;
    b = resto;
  }
 
  return a;
} 
 
int main(int argc, char *argv[]){
  int x, y;
	
  setlocale(LC_ALL,""); // para acentos do português
	
  printf("Este programa permite calcular o MDC\n");
  printf("Informe o primeiro número: ");
  scanf("%d", &x);
  printf("Informe o segundo número: ");
  scanf("%d", &y);
 
  printf("O Máximo Divisor Comum de %d e %d é %d",
    x, y, MDC(x, y));
  
  printf("\n\n");
  system("pause");
  return 0;
}

Ao executar este código C nós teremos o seguinte resultado:

Este programa permite calcular o MDC
Informe o primeiro número: 12
Informe o segundo número: 9
O Máximo Divisor Comum de 12 e 9 é 3


Desafios, Exercícios e Algoritmos Resolvidos de C

Veja mais Dicas e truques de C

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 48 usuários muito felizes estudando em nosso site.