Você está aqui: C ::: Desafios e Lista de Exercícios Resolvidos ::: Métodos, Procedimentos e Funções

Como testar se um número informado pertence a série Fibonacci - Exercícios Resolvidos de C

Quantidade de visualizações: 579 vezes
Pergunta/Tarefa:

Escreva um programa C que pede para o usuário informar um número inteiro positivo e usa uma função para informar se o número passado como argumento pertence à série Fibonacci.

Como sabemos, a série de Fibonacci é uma série de números na qual cada número é obtido mediante a soma dos dois números anteriores. Veja, por exemplo, os primeiros doze números da sequência Fibonacci:

0 1 1 2 3 5 8 13 21 34 55 89

Sua saída deverá ser parecida com:

Informe um número: 21
Pertence à sequência Fibonacci
Resposta/Solução:

Veja a resolução comentada deste exercício usando C:

----------------------------------------------------------------------
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>

// assinatura da função auxiliar
int pertenceSerieFibonacci(int n);

// função principal do programa
int main(int argc, char *argv[]){
  // variáveis usadas na resolução do problema
  int numero;
	
  setlocale(LC_ALL,""); // para acentos do português 
  
  // vamos solicitar um número inteiro positivo
  printf("Informe um número: ");
  // lê o número
  scanf("%d", &numero);
    
  // vamos testar se o número pertence à sequência
  // Fibonacci
  if(pertenceSerieFibonacci(numero)){
    printf("Pertence à sequência Fibonacci");
  }
  else{
    printf("Não pertence à sequência Fibonacci");
  }
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}
  
// função que recebe um número e informa se ele pertence
// à sequência Fibonacci
int pertenceSerieFibonacci(int n){
  // define os termos iniciais
  int primeiro = 0, segundo = 1, terceiro = 0;
    
  // enquanto o terceiro valor for menor que o número informado
  while (terceiro < n){
    terceiro = primeiro + segundo;
    primeiro = segundo;
    segundo = terceiro;
  }
         
  // pertence à sequência Fibonacci?    
  return terceiro == n;
}


Link para compartilhar na Internet ou com seus amigos:

C ::: Dicas & Truques ::: Arquivos e Diretórios

Como contar as linhas de um arquivo usando a função fgetc() da linguagem C

Quantidade de visualizações: 20837 vezes
Em algumas situações precisamos obter a quantidade de linhas em um arquivo em C. Nesta dica eu mostro como isso pode ser feito usando-se a função fgetc(), no header stdio.h. Note que aqui estamos assumindo que o arquivo texto não possui uma quebra de linha após a última linha de texto.

Veja o código comentado:

----------------------------------------------------------------------
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[])
{
  // nome e local do arquivo que será aberto para
  // obtermos a quantidade de linhas
  FILE *arquivo = fopen("c:\\testes.txt", "r");
  int caractere, existe_linhas = 0;
  int quant_linhas = 0;
  
  while((caractere = fgetc(arquivo)) != EOF){
    existe_linhas = 1; // há conteúdo no arquivo
    
    if(caractere == '\n'){ // é uma quebra de linha?
      // vamos incrementar a quantidade de linhas
      quant_linhas++;             
    } 
  }

  // se não houver uma quebra de linha na última linha
  // a contagem será sempre um a menos. Assim, é melhor
  // incrementar quant_linhas mais uma vez
  if(existe_linhas)
    quant_linhas++;

  // vamos exibir o resultado
  printf("O arquivo possui %d linhas.", quant_linhas);
  
  printf("\n\n");
  system("PAUSE");	
  return 0;
}



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

Como contar as ocorrências de um determinado caractere em uma string usando a linguagem C

Quantidade de visualizações: 11267 vezes
Em algumas situações precisamos obter a quantidade de vezes que um caractere ocorre dentro de uma string. Para isso podemos usar a função personalizada char_count(). Esta função recebe a string e o caractere que desejamos pesquisar e retorna um inteiro contendo a quantidade de vezes que o caractere foi encontrado.
Veja o código (usando apenas ANSI-C):

----------------------------------------------------------------------
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 <string.h>
 
// função personalizada que permite contar as
// ocorrências de um caractere em uma string
int char_count(const char *str, char caractere){
  int i, quant = 0;
 
  // vamos percorrer todos os caracteres da string
  for(i = 0; str[i]; i++){
    if(str[i] == caractere){ // localizamos
      quant++;
    }
  }
 
  return quant;
}
 
int main(int argc, char *argv[]){
  char frase[] = "Gosto muito de Java, JavaScript e Python";
 
  printf("Ocorrencias encontradas: %d",
    char_count(frase, 'a'));
 
  puts("\n\n");
  system("PAUSE");
  return 0;
}

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

Ocorrencias encontradas: 4


C ::: Dicas & Truques ::: Arquivos e Diretórios

Apostila de C para iniciantes - Como usar a função fread() da linguagem C para ler todo o conteúdo de um arquivo de uma só vez

Quantidade de visualizações: 22866 vezes
A função fread() se torna muito útil quando precisamos ler grandes blocos ou até mesmo todo o conteúdo de um arquivo. Neste caso, o conteúdo lido é guardado em um buffer para uso posterior. Veja o protótipo desta função:

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

size_t fread(void *ptr, size_t size, size_t count, FILE *stream);

Aqui ptr é um ponteiro para o buffer que receberá o conteúdo sendo lido. A capacidade deste buffer deverá ser no mínimo o valor de size multiplicado por count. O parâmetro size é o tamanho em bytes de cada elemento sendo lido. count é o número de elementos a serem lidos e stream é um ponteiro para o arquivo cujo conteúdo será lido.

Se a leitura do conteúdo for feita com sucesso, a função fread() retornará a quantidade de elementos lidos com sucesso. No exemplo abaixo estamos lendo caracteres de 1 byte cada. Analise o código cuidadosamente e verá como é fácil modificá-lo para, por exemplo, ler apenas a metade do arquivo de cada vez:

----------------------------------------------------------------------
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[]){
  // vamos abrir o arquivo para leitura no modo binário
  FILE *arquivo = fopen("dados.txt", "rb");
  if(arquivo != NULL){
    // vamos obter o tamanho do arquivo em bytes
    fseek(arquivo, 0, SEEK_END);
    long tam_arquivo = ftell(arquivo);
    rewind(arquivo);

    // vamos alocar memória para todo o conteúdo do arquivo
    char *buffer = (char*)malloc(sizeof(char) * tam_arquivo);
    // a memória foi alocada com sucesso?
    if(buffer != NULL){
      // vamos copiar o conteúdo do arquivo para o buffer
      size_t resultado = fread(buffer, 1, tam_arquivo, arquivo);

      // vamos verificar se a operação foi feita com sucesso
      if(resultado == tam_arquivo){
        puts("O conteudo do arquivo foi lido com sucesso\n\n");
        // vamos exibí-lo na tela
        puts(buffer);
      }
    }

    fclose(arquivo); // fecha o arquivo
    free(buffer); // libera a memória do buffer
  }

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



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á 65 usuários muito felizes estudando em nosso site.