From 033867165ee1398d5d94f265754534edc2a2a394 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 6 Mar 2023 01:32:31 -0300 Subject: Mais coisas aleatorias --- Random/recursividade_sequencia.c | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Random/recursividade_sequencia.c (limited to 'Random/recursividade_sequencia.c') diff --git a/Random/recursividade_sequencia.c b/Random/recursividade_sequencia.c new file mode 100644 index 0000000..2c32ee1 --- /dev/null +++ b/Random/recursividade_sequencia.c @@ -0,0 +1,42 @@ +#include +#include +#include +#define MAX 100 + +int verificar(char *c, int inicio, int fim){ + int tam = fim - inicio; + int v = 1, f1 = 0; + for(int i = inicio; i < fim+1; ++i){ + if(c[i] == '1' && f1 == 1) + v = 0; + if(c[i] == '1') + f1 = 1; + if(c[i] == '0') + f1 = 0; + } + return v; +} + +int seq(char* c, int inicio, int fim){ + if(c[fim+1] == '\0' && fim >= inicio){ + if(verificar(c, inicio, fim)){ + return 1 + seq(c, 0, fim-inicio-1); + }else{ + return seq(c, 0, fim-inicio-1); + } + }else if(fim >= inicio){//1 + if(verificar(c, inicio, fim)){ + return 1 + seq(c, inicio+1, fim+1); + }else{ + return seq(c, inicio+1, fim+1); + } + } + return 0; +} +int main(){ + int inicio = 0, fim = 3; + char *c = "0111"; + printf("%d\n", seq(c, inicio, fim)); + + return 0; +} -- cgit v1.2.3