Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Psyke1

#121
Java / Re: [SRC] decimalToRomano
22 Noviembre 2011, 21:08 PM
Ya veo...
¿Alguna ventaja en especial de una clase sobre otra? :huh:

Me veréis mucho por aquí, ahora que empecé con Java. :)
Yuju!

DoEvents! :P
#122
Java / Re: [SRC] isPrime
22 Noviembre 2011, 21:05 PM
Oukei, me comeré el "==" en esos casos.
Gracias.

DoEvents! :P
#123
Java / [SRC] isPrime
22 Noviembre 2011, 20:53 PM
La mejor forma que se me ocurre de hacerlo:

Código (java) [Seleccionar]
    public static boolean isPrime(int iNum) { // La forma más rápida que se me ocurre
    if (iNum > 1) {
    if (iNum < 6){
    if (iNum == 2 || iNum == 5 || iNum == 3)
    return true;
    } else if (((iNum & 1) == 1) && ((iNum % 10) != 5)) {
long lRaiz = (long) Math.sqrt(iNum);
long x;

for (x=3; x <= lRaiz; x += 2){
if ((iNum % x) == 0)
return false;
};

return true;
    }
    }
    return false;
    }


DoEvents! :P
#124
Java / Re: [SRC] decimalToRomano
22 Noviembre 2011, 20:40 PM
Lo de la notación húngara es una costumbre que tomé con vb6, como tú bien dices, por lo poquísimo que he visto en Java no se usa, pero a mí me resulta muy útil a veces, sobretodo si tengo muchas variables. :)

Sé que podía omitir ese punto y coma, pero así me parecía que quedaba un poco más claro, ¿no crees? :P

¿BufferReader?
No lo he usado hasta ahora, voy a probar. Gracias. ;)

DoEvents! :P

#125
Java / [SRC] decimalToRomano
22 Noviembre 2011, 20:05 PM
Llevo muy poco en java, avisadme si veis algún error o algo mejorable, a ver que os parece:

Código (java) [Seleccionar]
import java.util.*;

public class Hello {
public static String repeatString(String sText, int iTimes){
return new String(new char[iTimes]).replace("\0", sText);
}

public static String decimalToRomano(int iNum) {
int iTmp= 0, i= 1;
String sRet= "";

String [] [] sRDigit =
{
{"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"},
{"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"},
{"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"}
};

if (iNum > 0){
for (int x=0; x<3; x++){
iTmp=iNum % (i * 10);

if (iTmp != 0)
sRet= sRDigit[x][(iTmp / i) -1] + sRet;

iNum -= iTmp;

if (iNum == 0)
return sRet;

i *= 10;
};

sRet= repeatString("M", iNum / 1000) + sRet;
};

return sRet;
}
   
public static void main (String args[]) {
System.out.println("Dame un numero mayor que cero para convertirlo a un numero romano:");
   
int iMyNum = new Scanner(System.in).nextInt();
System.out.println("El numero "+ iMyNum + " en romano es: " + decimalToRomano(iMyNum));
}
}


DoEvents! :P
#126
A mí no me crashea con más de tres llamadas... :rolleyes:
Prueba a quitar el Static por si acaso...

DoEvents! :P
#127
Lo digo porque no es la primera vez que pides ayuda y lo camuflas como reto para que responda la gente. :¬¬
Y por cierto, ese código que has puesto lo detectan los Avs a la primera. :silbar: :xD

DoEvents! :P
#128
RETO <> Deberes

DoEvents! :P
#129
Cita de: BlackZeroX (Astaroth) en 21 Octubre 2011, 19:27 PM
Cita de: Psyke1 en 21 Octubre 2011, 10:18 AM
Vale todo el más rápido gana.
>:D

>:D

Código (vb) [Seleccionar]
Option Explicit
Private Declare Sub RtlMoveMemory Lib "kernel32" (ByVal pDst As Long, ByVal pSrc As Long, ByVal ByteLen As Long)
Private Declare Function SysAllocStringByteLen Lib "oleaut32.dll" (ByVal oleStr As Long, ByVal BLen As Long) As Long

Public Static Function RemoveStr_Psyke1(ByVal sText As String, ByVal lPosIni As Long, ByVal lLen As Long) As String
Dim lLenB                                   As Long
Dim lpString                                As Long

   lLenB = LenB(sText)
   If lLenB Then
       If (lPosIni Or lLen) And &H80000000 Then Exit Function
       
       lLen = (lLen + lLen)
       lPosIni = (lPosIni + lPosIni)
       
       If (lPosIni + lLen) = lLenB Then lLen = lLenB

       If (lLen = lLenB) And (lPosIni = 0&) Then
           RemoveStr_Psyke1 = sText
           Exit Function
       End If

       lpString = StrPtr(sText)
       
       RtlMoveMemory (lpString + lPosIni), (lpString + lPosIni + lLen), (lLenB - lPosIni + lLen)
       RtlMoveMemory VarPtr(RemoveStr_Psyke1), VarPtr(SysAllocStringByteLen(lpString, lLenB - lLen)), 4&
   End If
End Function

Private Sub Form_Load()
   MsgBox RemoveStr_Psyke1("hola amigo 123456789", 4, 6)
End Sub


DoEvents! :P
#130
Más tarde publico la mía.


DoEvents! :P