Retos .Net

Iniciado por [D4N93R], 8 Septiembre 2010, 18:44 PM

0 Miembros y 1 Visitante están viendo este tema.

criskapunk

Como te odio [D4N93R] :¬¬ jaja

Reto #3

Código (vbnet) [Seleccionar]
Option Explicit On

Module Module1

    Dim n1, n2, longitud, num, f, resultado As Integer
    Dim strNum As String
    Dim i, j, k As Integer

    Sub Main()

        Console.WriteLine("Ingrese el primer valor del intervalo: ")
        n1 = Val(Console.ReadLine())
        Console.WriteLine("Ingrese el segundo valor del intervalo: ")
        n2 = Val(Console.ReadLine())
        For i = n1 To n2
            strNum = CStr(i)
            longitud = strNum.Length
            For j = 0 To (longitud - 1)
                num = CInt(CStr(strNum(j)))
                If (num = 0) Or (num = 1) Then
                    f = 1
                Else
                    For k = 1 To num
                        f *= k
                    Next
                End If
                resultado += f
                f = 1
            Next
            If i = resultado Then
                Console.WriteLine(i)
                Console.WriteLine("Es un numero curioso! :)")
            End If
            resultado = 0
        Next
        Console.ReadLine()
    End Sub

End Module


No se si puedo poner algun reto :P

Un saludo

[D4N93R]

#11
Bueno cómo nadie resolvió el reto, voy a poner la solución:
Código (csharp) [Seleccionar]

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Reto6
{
   class Program
   {
       static void Main(string[] args)
       {
           string[] words = { "programador", "framework", "zorra", "mora", "amor", "roma", "arroz" };

           var wordsOrdered = words.GroupBy(w => w.Trim(), new AnagramComparer());

           foreach (var a in wordsOrdered)
           {
               Console.WriteLine("**********************");
               foreach (var b in a)
               {
                   Console.WriteLine(b);
               }
           }
           Console.WriteLine("**********************");
       }
   }
}


public class AnagramComparer : IEqualityComparer<string>
{
   public bool Equals(string x, string y)
   {
       return getLetters(x) == getLetters(y);
   }

   public int GetHashCode(string obj)
   {
       return getLetters(obj).GetHashCode();
   }

   private string getLetters(string word)
   {
       char[] chars = word.ToCharArray();
       Array.Sort<char>(chars);
       return new string(chars);
   }
}


Reto #7
El número 197 es llamado primo circular porque todas las combinaciones de sus digitos son primos también.

Hay 13 primos por debajo de 100 que son circulares:  2, 3, 5, 7, 11, 13, 17, 31, 37, 71, 73, 79, and 97.

El reto consiste en saber cuantos primos circulares hay por debajo de un millón.

Reto #8
El que haga este proceso en menos tiempo.. Así que a postear soluciones que yo les mido el rendimiento del método.

;-)

carlitos_jajajajaja

Cuanto tiempo mas o menos nos deberia tardar en calcular???
Merodeo los foros, esperando el momento de decir algo inteligente...

Se necesita paciencia

[D4N93R]

Ni idea, calculo unos 1-2 minutos. Supongo. Puede que más.. Puede que menos x) Si ya lo terminaste, postealo, y cualquier cosa lo vamos optimizando.

[L]ord [R]NA

[D4N93R] creo que ambos cometimos un pequeño error... colocamos un reto que mato la idea de los ejercicios, que tal si cambias el ejercicio?

[D4N93R]

Si, voy a postear la respuesta y a poner otro ejercicio :) pero mañana, que ahora estoy revisando el regristro -.-

[L]ord [R]NA

Cierto... tienes otra anecdota de aprendiendo a base de palos. ;D

criskapunk

Con autorizacion de [D4N93R] posteo un nuevo reto :)

Reto #9
Dada una fraccion, simplificarla hasta llegar a su irreductible.

Un saludo ;)

[L]ord [R]NA

Respuesta al Reto#9:
Código (csharp) [Seleccionar]
using System;

namespace fraccion
{
class MainClass
{
public static void factorizar (ref int a,ref int b)
{
for(int i=2;i<b+1;i++)if(a%i==0 && b%i==0)
{
a/=i;
b/=i;
i--;
}
}

public static void Main (string[] args)
{
string fraccion;
string[] split;
int[] valor = new int[2];

Console.WriteLine("Introduzca la fraccion en el formato a/b : ");
fraccion = Console.ReadLine();
split = fraccion.Split(char.Parse("/"));
for(int i=0;i<2;i++) valor[i] = Int32.Parse(split[i]);

if(valor[0]>=valor[1])factorizar(ref valor[0],ref valor[1]);
else factorizar(ref valor[1],ref valor[0]);

Console.WriteLine("{0}/{1}",valor[0],valor[1]);
}
}
}

[L]ord [R]NA

#19
Reto #10: Realizar una agenda telefonica.

Nota sobre el reto: Se debe crear una base de datos SQL desde el programa en la cual se guardara nombre. apellido, sexo, edad, telefono. El programa debe contar con las siguientes opciones...

1)Agregar nuevo contacto.
2)Eliminar contacto.
3)Buscar contacto.
4)Editar contacto.