elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Reto Batch] IsFibonacciNumber (79137913)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Reto Batch] IsFibonacciNumber (79137913)  (Leído 8,121 veces)
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [Reto Batch] IsFibonacciNumber (79137913)
« Respuesta #10 en: 9 Mayo 2012, 18:37 pm »

HOLA!!!

Tardaron mucho en responder aqui esta mi solucion...

Analicen el codigo:

Código
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. ECHO VERIFICADOR DE NUMEROS PRIMOS POR 79137913
  4. ECHO EJEMPLO:
  5. ECHO Entrada:1 2 3 4 5 6 7 8 9 10 11 12 13
  6. ECHO Salida: 1 1 1 0 1 0 0 1 0 0 0 0 1
  7. SET PROC=PROCESANDO
  8. SET /P N=INSERTE UNA CADENA DE NUMEROS A VERIFICAR SEPARADOS POR UN ESPACIO:
  9. :NEXTNUM
  10. IF "%FIN%"=="1" GOTO SHOWNUMS
  11. SET RN=
  12. :NEXTCHAR
  13. call set CHAR=%%N:~%NUM%,1%%%
  14. set /a NUM+=1
  15. IF "%CHAR%" EQU " " (GOTO EMPIEZA)
  16. IF "%CHAR%" EQU "" SET FIN=1
  17. IF "%CHAR%" EQU "" (GOTO EMPIEZA)
  18. SET RN=%RN%%CHAR%
  19. GOTO NEXTCHAR
  20. :EMPIEZA
  21. SET X=%RN%
  22. SET Y=%X%
  23. SET CT=0
  24. SET /A Y=(5*%X%*%X%)+4
  25. SET RETURN=POSITIVO
  26. GOTO CHECKROOT
  27. :POSITIVO
  28. IF "%EXACTO%"=="1" GOTO ISFIB
  29. SET RETURN=NEGATIVO
  30. SET /A Y=!Y!-8
  31. GOTO CHECKROOT
  32. :NEGATIVO
  33. IF "%EXACTO%"=="1" GOTO ISFIB
  34. SET OUTP=%OUTP% 0
  35. GOTO NEXTNUM
  36. :ISFIB
  37. SET OUTP=%OUTP% 1
  38. GOTO NEXTNUM
  39. :SHOWNUMS
  40. CLS
  41. ECHO %OUTP%
  42. :CHECKROOT
  43. CLS
  44. SET PROC=%PROC%.
  45. ECHO %PROC%
  46. SET /A DEND=!Y!
  47. SET EXACTO=0
  48. FOR /L %%I IN (%DEND%, -1, 1) DO (
  49.   SET /A SQR=%%I*%%I
  50.   IF !SQR!==% style="color: #448888;">DEND% (SET EXACTO=1)
  51. )
  52. GOTO %RETURN%

por las dudas pastebin
http://pastebin.com/vW61JYzi

GRACIAS POR LEER!!!


En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: [Reto Batch] IsFibonacciNumber (79137913)
« Respuesta #11 en: 14 Mayo 2012, 15:15 pm »

Una instantánea del funcionamiento:



Y el código:

Código:
@echo off
setlocal enabledelayedexpansion
echo. Introduzca una secuencia de enteros (separados por espacios)
echo. para verificar si pertenencen a la sucesion de Fibonacci.
echo.
set /p seq=Secuencia:
set /a i=0
set "SALIDA="
:seq
if "!seq:~%i%,1!" NEQ "" (
if "!seq:~%i%,1!" NEQ " " (
set num=!num!!seq:~%i%,1!
) else (
call :NUMERO !num!
set "num="
)
set /a i+=1
goto seq
) else (
call :NUMERO !num!
)
echo Salida:  !SALIDA!
pause&exit/b

:NUMERO
set /a NUMERO=%1
set /a inc=0
:GS
call :SucesionFibonacci !inc!
if !NUMERO! GTR !f1! (set /a inc+=1 & goto GS)
if !NUMERO! EQU !f1! (
set SALIDA=!SALIDA! 1
) else (
set SALIDA=!SALIDA! 0
)

:SucesionFibonacci
set /a N=%1
set /a f0=0
set /a f1=1
for /l %%S in (1,1,!N!) do (
set /a f=!f0!+!f1!
set /a f0=!f1!
set /a f1=!f!
)


« Última modificación: 14 Mayo 2012, 16:28 pm por Batchiano » En línea

Puede que desees aprender a programar desde 0: www.espascal.es
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [Reto Batch] IsFibonacciNumber (79137913)
« Respuesta #12 en: 14 Mayo 2012, 15:56 pm »

HOLA!!!

Genial, ahora hace que devuelva la respuesta en una sola linea de ceros y unos y estas!

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
BatchianoISpyxolo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: [Reto Batch] IsFibonacciNumber (79137913)
« Respuesta #13 en: 14 Mayo 2012, 16:28 pm »

HOLA!!!

Genial, ahora hace que devuelva la respuesta en una sola linea de ceros y unos y estas!

GRACIAS POR LEER!!!

Ya concatené la salida -_- XD **CODE EDITADO**
En línea

Puede que desees aprender a programar desde 0: www.espascal.es
Binary_Death

Desconectado Desconectado

Mensajes: 214



Ver Perfil
Re: [Reto Batch] IsFibonacciNumber (79137913)
« Respuesta #14 en: 22 Julio 2012, 03:00 am »

Aquí está mi solución:

Código:
@Echo Off
setlocal enableextensions enabledelayedexpansion
set /p "seq=-Input  >> "
set "b_s=" & set /a bgr=0
for %%_ in (%seq%) do if %%_ GTR !bgr! set/a bgr=%%_
call:_fib %bgr%
for %%_ in (%seq%) do (
1>nul 2>&1, (echo:%f_s%|find "$%%_$") && (
set "b_s=!b_s! 1"
) || (
set "b_s=!b_s! 0"
)
)
echo:-Output ^>^>%b_s%
pause 1>nul & exit
:_fib
set "f_s=$1$"
set/a f_n=1,s_n=2
for /l %%_ in (1,1,%~1) do (
set/a n_n=!f_n!+!s_n!
set/a f_n=!s_n!,s_n=!n_n!
set "f_s=!f_s!$!n_n!$"
if !n_n! geq %~1 goto :eof
)
goto :eof

Creo poder hacer un método más rápido... pero no me lo permiten mis escasos conocimientos de matemáticas (¡que aunque se me den bien, todavía recién acabé 4º de ESO!).
Posteé en un foro una duda relacionada, si me la solucionan, podré hacer un algoritmo más eficiente. Mientras, queda esto  :xD
« Última modificación: 22 Julio 2012, 03:19 am por Binary_Death » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] IsFibonacciNumber(N as long) as Boolean « 1 2 3 »
Programación Visual Basic
79137913 28 14,778 Último mensaje 16 Febrero 2011, 19:04 pm
por 79137913
[Reto Batch] Jugando con la IP I « 1 2 »
Scripting
Eleкtro 10 6,962 Último mensaje 10 Mayo 2012, 17:24 pm
por 79137913
[Reto Batch] It's a dir? « 1 2 3 4 »
Scripting
Eleкtro 30 20,447 Último mensaje 31 Marzo 2014, 18:13 pm
por Shell Root
[Reto Batch] VIRUS HELLO !! « 1 2 »
Scripting
Eleкtro 10 8,151 Último mensaje 22 Julio 2012, 00:32 am
por Binary_Death
[Reto Batch]Buscame en el log « 1 2 »
Scripting
Puntoinfinito 10 6,341 Último mensaje 18 Julio 2012, 16:50 pm
por Puntoinfinito
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines