Jump to content
Dioguex

Projecto em C: Verificar se número é bipolar

Recommended Posts

Dioguex

Boa tarde a todos,

Tenho que desenvolver um projecto para uma disciplina. Entre muitas outras coisas, o projecto exige que o utilizador introduz um número, por exemplo 251 e o programa tem que calcular os múltiplos de 251 até encontra um múltiplo que seja bipolar, neste caso é 5522. Um número bipolar, neste caso, é um número que apenas contenha 2 dígitos diferentes e que estejam seguidos, se fosse 5252 já não era bipolar.

Neste momento o código que tenho é o seguinte:

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

void verificar_multiplos(int x);
int verificar_bipolar(long bip);

int main(int argc, char *argv[]) {
   int num = 0;
   printf("Introduza um número: ");
   fflush(stdout);
   scanf("%d", &num);
   verificar_multiplos(num);
   return 0;
}

void verificar_multiplos(int x) {
   int i = 1;
   unsigned long long num = x, resu = 0;
   if (num <= 0) {
       printf("Introduza um número maior que 0\n");
   } else {
       do {
           resu = num * i;
           i++;
           printf("%I64d\n", resu);
       } while (verificar_bipolar(resu) != 0);
   }
}

int verificar_bipolar(long bip) {
   int resu=0;
   while (bip>0){
       resu=bip%10;
       printf ("%d\n",resu);
       bip=bip/10;
   }
   return bip;
}

Ou seja, o programa está a calcular os múltiplos, e a separa os dígitos para poder verificar se são iguais, o problema é que já dei voltas e voltas e não consigo fazer com que o programa identifique se é bipolar, mesmo na minha cabeça não sei como fazer para escrever o código.

Podem ajudar, por favor?

Obrigado.

Edited by Dioguex

Share this post


Link to post
Share on other sites
thoga31
Enquanto o número tiver dígitos, fazer:
  Obter um novo dígito para "dig"
  Se dig = temp Então
     Prosseguir
  Senão
     temp <- dig
     conta += 1
     Se conta > 2 Então
        Devolver FALSO
  Fim Se
Fim Enquanto

Se conta = 2 Então
  Devolver VERDADEIRO
Senão
  Devolver FALSO


Knowledge is free!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.