C/Visual C - Hallar algoritmo de un número mediante sumas y divisiones

 
Vista:
sin imagen de perfil

Hallar algoritmo de un número mediante sumas y divisiones

Publicado por Alejandro Caro (4 intervenciones) el 17/07/2012 22:02:48
tengo esta siguiente consigna:
Escriba un programa en C que reciba como parámetros dos enteros b y n y devuelva como resultado la parte entera del logaritmo de n en base b. Dicho resultado es un entero k que cumple lo siguiente: b^k <= n < b^(k+1) El algoritmo sólo puede realizar divisiones y sumas. Asuma que n > 0 y b > 1.

Respondo con lo siguiente:

int main()
{
int resultado;
int numero, base, contador = 0;
printf("Ingrese un n£mero para calcular el logaritmo");
scanf("%d", &numero);
printf("Ingrese la base del logaritmo");
scanf("%d", &base);
do{
contador++;
resultado= numero/base;
}while(resultado >= base);
printf ("El logaritmo de %d en base %d es %d", numero, base, resultado);
return 0;
}

y me dá siempre el resultado 0.
¿Donde está el error?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Hallar algoritmo de un número mediante sumas y divisiones

Publicado por Capitan Kirk (97 intervenciones) el 18/07/2012 13:29:37
Prueba con esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
	int resultado;
	int numero, base, contador = 0;
 
	printf("Ingrese un n£mero para calcular el logaritmo: ");
	scanf("%d", &numero);
	printf("Ingrese la base del logaritmo: ");
	scanf("%d", &base);
	resultado = numero;
	while (resultado > 0)
	{
		resultado = resultado/base;
		if (resultado > 0)
			contador++;
	}
 
	printf ("El logaritmo de %d en base %d es %d", numero, base, contador);
	return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Hallar algoritmo de un número mediante sumas y divisiones

Publicado por yagami raito (1 intervención) el 24/08/2012 20:26:13
hola gente,
yo hice el programa en pascal,creo que van a poder entenderlo perfectamente :)
quiza sea un poco tarde alejandro, pero igual lo dejo por si alguien mas necesita una mano ;)
bueno, el codigo fuente queda asi:

program logaritmo;

var
b, n, resultado, k:integer;

begin
read (b,n);
if n=1
then k:=0
else
begin
k:=0;
resultado:= (n div b);
while ( resultado >= 1) do
begin
k:= k +1;
resultado:= resultado div b
end
end;
writeln ('la parte entera del logaritmo de n en base b es : ', k)
end.

saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar