![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
Una división que me tiene bloqueado.
Necesito conocer el resto de una división. Visto así parece muy sencillo se utiliza el "mod" y ya está, pero el problema que me tiene bloqueado es que tengo que saber el resto de una división con un numero de 26 dígitos y no lo consigo hacer.
ejemplo: 00120345030000067890142800 / 97 el resto sería 91 ¿ como puedo saber el resto ? Gracias a todos Saludos |
|
#2
|
|||
|
|||
|
Pues hay que desbloquearte
Esperemos que te sirva esta funcion...
un poco maquiavelica pero jala je Código:
Function Division(CNum : String;Dividir : Int64) : LongInt;
Const
Entero64 = 999999999999999999;
Var
Mayores,Menores : Extended;
ModMen,ModMay,ModConst : Int64;
Begin
If Length(CNum) > 18 Then
Begin
//quitamos primero los nulos
While CNum[1] = '0' Do
Delete(CNum,1,1);
//Sacamos a los que no podamos transformar en entero
Mayores := StrToFloat(Copy(CNum,1,Length(CNum)-18));
//Sacamos a los que podemos transformar en Enteros
Menores := StrToFloat(Copy(CNum,Length(CNum)-17,10000));
//Ahora sabemos que los mayores
//es igual a mayores por la const Entero64
//mas mayores
//Sacamos primero el modulo de los menores
ModMen := Trunc(Menores) MOD Dividir;
//Sacamos el modulo de los mayores
ModMay := Trunc(Mayores) MOD Dividir;
//Sacamos el modulo de la constante
ModConst := Entero64 MOD Dividir;
//lo multiplicamos por las veces que usamos la constante
ModConst := ModConst * Trunc(Mayores);
//Sumamos los sobrantes y sacamos el resultado
Result := (ModMen+ModMay+ModConst) MOD Dividir;
//y listo.. listo
End;
//y si no es mayor entonces eso ya es facil
End;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var
Dividir : Int64;
CNum : String;
begin
CNum := '00120345030000067890142800';
Dividir := 97;
ShowMessage(IntToStr(Division(CNum,Dividir)));
end;
saludos
__________________
saludos desde Puebla Mexico.. [email protected] "como siempre a sus ordenes y siempre con buena cara" 'lolita me excitas, perversa piel de melocotón' |
|
#3
|
|||
|
|||
|
Funciona de lujo, aunque parece mentira me has sacado de un gran problema, te debo un almuerzo, si alguna vez te pasas por Valencia, mandame un correo que te invito.
Saludos |
|
#4
|
|||
|
|||
|
Pues creo que..
Pues si va a estar dificil eso del almuerzo ya que estoy del otro lado del charco.. me basta con que te halla servido...
Saludos..
__________________
saludos desde Puebla Mexico.. [email protected] "como siempre a sus ordenes y siempre con buena cara" 'lolita me excitas, perversa piel de melocotón' |
|
#5
|
||||
|
||||
|
Cita:
![]() |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|