моя контактная информация
Почтамезофия@protonmail.com
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Предположим, вы поднимаетесь по лестнице. Чтобы добраться до вершины здания, вам потребуется n шагов.
Вы можете подняться на 1 или 2 ступеньки за раз. Сколькими способами можно подняться на крышу здания?
Сначала я написал функцию для расчета количества людей, поднимающихся на первый и второй этаж, а затем упорядочил и суммировал их, но это вышло за пределы диапазона. Позже я изменил диапазон, но результат был неверным.,,,
Я не знаю, почему,
Позже, когда я посмотрел на результаты, они выглядели все более и более знакомыми. Разве это не последовательность Фибоначчи?
Это произойдет позже
- 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;
-
- }
Продолжайте хорошую работу! ! ! ! ! ! !
Моя голова пуста.
Если есть лучшее решение, пожалуйста, дайте мне знать, спасибо!
То же, что последовательность Фибоначчи, то есть использование рекурсии для записи Фибоначчи и, наконец, вывода
- 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];
- }
Надеюсь, сегодня я лучше, чем вчера!
Продолжать идти! !