Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Uma palavra de Fibonacci é definida por
/applications/core/interface/imageproxy/imageproxy.php?img=http://i.imgur.com/BuN5YnT.png&key=c20c7582c8076bf02a5b71e74f67bd636f2e5057a95c1c2530123a0716e9d44c" alt="BuN5YnT.png" />
Aqui + denota a concatenação de duas strings. Esta sequência inicia com as seguintes palavras: b, a, ab, aba, abaab, abaababa, abaababaabaab, ...
Faça uma função recursiva que receba um número N e retorne a N-ésima palavra de Fibonacci.
Tentando fazer:
#include <stdio.h>
char f(char s[], int);
int main ()
{
char s[100], n=3;
printf("%s", f(s, n));
}
char f(char s[], int n)
{
if(n==0)
{
strcat("b", s);
return "b";
}
else if(n==1)
{
strcat("a", s);
return "a";
}
else
{
return f(n-1)f(s, n-2));
}
}
Não sei como fazer o resto...
http://en.wikipedia.org/wiki/Fibonacci_word
Pegando a ideia da wikipedia. Não fiz recursivo.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char * palavra;
void replace_all_b() {
for(size_t i=0; i<strlen(palavra); i++) {
unsigned int contar_a() {
void replace_all_a() {
void replace_all_question() {
for(size_t i=0; i<strlen(palavra); i++) {
void fib_word(unsigned int N) {
/ 'a' vira 'ab'. 'b' é trocado por 'a' /
int main(void) {
Só tem que tomar cuidado p/ não estourar o heap.
A ideia principal está aí na forma iterativa. Você pode criar uma forma recursiva iniciando do i=0 até i<N (caso você comece de N não vai ser possível gerar a string dessa forma).