Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
La secuencia formada por números de Fibonacci (generalmente representada por F(n)) se llama secuencia de Fibonacci.La secuencia comienza con 0 y 1, seguido de
Cada número es la suma de los dos números anteriores. Eso es:
F(0)=0,F(1)=1
F(n)=F(n -1)+ F(n- 2), donde n>1, dado n(0 ≤n≤ 30), calcule F(n)
Después de responder esta pregunta, veamos primero el rango de la pregunta, que no debe exceder 30. Esto se debe a que la tasa de crecimiento de los números de Fibonacci es muy rápida.
Rápido, exponencialmente. Entonces, si n es grande, excederá el rango de enteros de 32 bits en lenguaje C.Esta es la entrega más básica.
Ya te hemos contado la pregunta de deducción y la fórmula de recursividad. Todo lo que tenemos que hacer es usar un bucle para implementar esta recursividad.
Solo necesitamos usar una matriz F [31], inicializar F [0] y F [1] y luego calcularlo en un bucle de acuerdo con la fórmula dada.
int febonacci(int n) {
int F[30] = {0,1};
for (int i = 2; i < 30; i++) {
F[i] = F[i - 1] + F[i - 2];
}
return F[29]
}
La secuencia de Tabonacci Tn se define de la siguiente manera:
T(0) = 0, T(1) = 1, T(2) = 1
Y bajo la condición de n>2, T(n)=T(n-1)+T(n-2)+T(n-3), dándole el número entero n, devuelva el enésimo Tabonacci
El valor del número T(n).
Si ya comprende la secuencia de Fibonacci, entonces este problema no es difícil, pero al inicializar, debe inicializar los primeros tres números.
Y durante el cálculo de la iteración del bucle, el valor del número actual requiere la suma acumulativa de los valores de los tres números anteriores. como esto:
int tribonacci(int n) {
int F[30] = {0,1,1};
for (int i = 3; i < 30; i++) {
F[i] = F[i - 1] = F[i - 2] + F[i - 3];
}
return F[29];
}
Problemas como la secuencia de Fibonacci se pueden resolver con una matriz unidimensional. A veces, cuando una dimensión no puede resolverla,
Necesitamos mirar el problema desde una dimensión superior.
La longitud es n(1
Pero no debe haber otros caracteres) y está prohibido tener M adyacentes entre sí. ¿Cuántos tipos de cadenas de este tipo existen?
Considere que la longitud es n, y hay f[n][0] tipos de cadenas que terminan en 'A', f[n][1] tipos de cadenas que terminan en 'C', y que hay f[n][ 1] tipos de cadenas que terminan en ''
f[n][2] especies
Números de Fibonacci(usualmente usadoF(n)
representa) la secuencia formada se llamaSecuencia Fibonacci .Esta secuencia consiste en0
y1
Inicialmente, cada número subsiguiente es la suma de los dos números anteriores.
int fib(int n){
if(n == 0){
return 0;
}
else if (n == 1){
return 1;
}
return fib(n - 1) + fib(n - 2);
}
Supongamos que estás subiendo escaleras.necesidadn
Puedes llegar a la cima del edificio siguiendo unos escalones.
cada vez que puedas escalar1
o2
un paso. ¿De cuántas maneras diferentes puedes subir a la cima de un edificio?
int climbStairs(int n) {
int f[46];
f[0] = 1;
f[1] = 1;
for(int i = 2; i <= n; i++){
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}
Dado un índice no negativorowIndex
, Regrese al tercer punto del "Triángulo Yang Hui"rowIndex
DE ACUERDO.
int* getRow(int rowIndex, int* returnSize) {
int f[34][34];
for(int i = 0; i <= rowIndex; i++){
for(int j = 0; j <= i; j++){
if(j ==0 || j == i){
f[i][j] = 1;
}
else {
f[i][j] = f[i - 1][j] + f[i - 1][j - 1];
}
}
}
int* ret = (int *)malloc (sizeof(int) * (rowIndex + 1));
for(int j = 0; j <= rowIndex; j++){
ret[j] = f[rowIndex][j];
}
*returnSize = rowIndex + 1;
return ret;
}