le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Supponiamo che tu stia salendo le scale. Ci vogliono n gradini per raggiungere la cima dell'edificio.
Puoi salire 1 o 2 gradini alla volta. In quanti modi diversi puoi salire in cima a un edificio?
Per prima cosa ho scritto una funzione per calcolare il numero di persone che salgono al primo e al secondo piano, quindi le ho organizzate e sommate, ma era fuori intervallo. Successivamente ho modificato l'intervallo, ma il risultato era sbagliato.,,,.
non so perché,
Più tardi, quando ho guardato i risultati, mi sono sembrati sempre più familiari. Non è questa la sequenza di Fibonacci?
Accadrà più tardi
- 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;
-
- }
Continua così! ! ! ! ! ! !
La mia testa è vuota.
Se esiste una soluzione migliore fatemelo sapere, grazie!
Lo stesso della sequenza di Fibonacci, ovvero utilizzare la ricorsione per scrivere Fibonacci e infine ottenere l'output
- 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];
- }
Spero di stare meglio oggi rispetto a ieri!
Continuare! !