contenido
[Pregunta de programación] Reemplazar espacios
[Pregunta de programación] Secuencia de Fibonacci
[Pregunta de programación] Reemplazar espacios
Implemente una función que reemplace cada espacio en una cadena con "%20". Por ejemplo, cuando la cadena es We Are Happy., la cadena reemplazada es We%20Are%20Happy.
Para preguntas de programación de tipo de interfaz, solo necesita seguir el código de solicitud para implementar esta función;
La idea es la siguiente:
Primero, se calcula el número de espacios en la cadena y la longitud convertida de la cadena se determina por el número de espacios.
Cada espacio se convierte en% 20 es encontrar una longitud de cadena de espacio + 2
La cadena tiene dos espacios, así que agregue 4 a la longitud de la cadena. es fin2;
Si str[end1]!=' ' entonces str[end2]=str[end1]
Si str[end1] == ' ' then str[end2--] = '0';str[end2--] = '2';str[end2--] = '%20';end1--;
el código se muestra a continuación:
class Solution {
public:
void replaceSpace(char* str, int length) {
//数空格
int space = 0;
char* p = str;
while (*p)
{
if (*p == ' ')
space++;
p++;
}
int newlen = length + space * 2;
int end1 = length - 1;
int end2 = newlen - 1;
while (end1 != end2)
{
if (str[end1] != ' ')
{
str[end2--] = str[end1--];
}
else
{
str[end2--] = '0';
str[end2--] = '2';
str[end2--] = '%';
end1--;
}
}
}
};
[Pregunta de programación] Secuencia de Fibonacci
La secuencia de Fibonacci se define así:
F[0] = 0
F[1] = 1
para cada i ≥ 2: F[i] = F[i-1] + F[i-2]
Por lo tanto, la secuencia de Fibonacci parece como: 0, 1, 1, 2, 3, 5, 8, 13, ..., los números en la secuencia de Fibonacci se llaman números de Fibonacci. Déle una N, quiere que sea un número de Fibonacci, puede cambiar el número actual X a X-1 o X+1 en cada paso, ahora déle un número N para encontrar la cantidad mínima de pasos necesarios para convertirse en un número de Fibonacci.Darle un número N para encontrar el número mínimo de pasos necesarios para convertirse en un número de Fibonacci
analizar de la siguiente manera:
Ingrese el número n, y primero determine si n pertenece a la secuencia de Fibonacci a través del ciclo, si pertenece a la impresión 0, significa que se requieren 0 pasos para hacer que n sea una secuencia de Fibonacci, si n no pertenece a la secuencia de Fibonacci, entonces use n y b se compara, si b>n, compare las distancias de a a n y b a n, es decir, compare los valores absolutos de (an) y (bn), si el valor absoluto de an es grande , emite el valor absoluto de bn, lo contrario es cierto.
#define _CRT_SECURE_NO_WARNINGS
//斐波那契数列 求最小步数
#include<stdio.h>
#include<math.h>
int main()
{
int a = 0;
int b = 1;
int c = 1;
int n = 0;
scanf("%d", &n);
while (1)
{
if (b == n)
{
printf("0\n");
break;
}
else if(b > n)
{
if (abs(a - n) > abs(b - n))
{
printf("%d", abs(b - n));
}
else
{
printf("%d", abs(a - n));
}
break;
}
a = b;
b = c;
c = a + b;
}
return 0;
}