minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Suponha que você esteja subindo escadas. São necessários n passos para você chegar ao topo do edifício.
Você pode subir 1 ou 2 degraus por vez. De quantas maneiras diferentes você pode subir até o topo de um prédio?
Primeiro escrevi uma função para calcular o número de pessoas subindo o primeiro e o segundo andar, e depois organizei e somei, mas depois mudei o intervalo, mas o resultado estava errado.,,,.
Eu não sei por que,
Mais tarde, quando olhei os resultados, eles pareciam cada vez mais familiares. Não é esta a sequência de Fibonacci?
Isso acontecerá mais tarde
- int climbStairs(int n) {
- //int n,j;
- int sum=0;
- //scanf("%d",&n);
- int f_1=1;
- int f_2=2;
- int f_n=0;
- //int f_n_1=0;
- if(n==0||n==1||n==2)
- {
- return n;
- }
- for(int i=1;i<=n-2;i++)
- {
- f_n=f_1+f_2;
- //f_n_1=f_n+f_2;
- f_1=f_2;
- f_2=f_n;
- }
- return f_n;
- // return 0;
-
- }
Mantenha o bom trabalho! ! ! ! ! ! !
Minha cabeça está vazia.
Se houver uma solução melhor, por favor me avise, obrigado!
O mesmo que a sequência de Fibonacci, ou seja, usando recursão para escrever Fibonacci e, finalmente, gerar
- int *func(int n,int* f_n,int f_1,int f_2)
- {
- --n;
- if(n == -1)
- return n;
- f_n[n] = f_1+f_2;
- f_1 = f_2;
- f_2 = f_n[n];
- func(n,f_n,f_1,f_2);
- return f_n;
- }
-
- int climbStairs(int n) {
-
- int f_n[n];
- func(n,f_n,0,1);
- return f_n[0];
- }
Espero estar melhor hoje do que ontem!
Continue! !