Hola Fw190, gracias por responder ante lo que me dijiste se me ocurrió que en cada incremento poner un if que si i < 0 entonces i *= -1 en caso de ser negativo pase a positivo, probé en 18, 25 pero de 30, 40 queda muy lento, pongo el código:
Código C#:
Ver originalusing System;
namespace _11_FOR
{
class Program {
/**
* Código de: http://www.solveet.com/exercises/Tabla-de-verdad-en-Binario/339/solution-2144
*
* 11. Programa en Java que da la lista de numeros en Binario según una longitud
* introducida por el usuario. Usando la funcion Integer.toBinaryString(int num).
*/
static void Main(string[] args) {
Console.Clear();
Console.WriteLine("Introduce la cantidad de dígitos: ");
int longitud = Convert.ToInt32(Console.ReadLine());
String numBin = "";
//2 elevado al valor ingresado
/* */
double pot = Math.Pow(2, longitud);
for(int i = 0; i < pot ;i++){
if(i < 0){
i *= -1;
}
// pasa el valor de decimal a binario
//numBin = Int32.toBinaryString(i);
numBin = Convert.ToString(i, 2);
/*
uso el while para ir agregando caracteres hasta llegar
al largo ingresado
*/
while(numBin.Length < longitud){
numBin = 0 + numBin;
}
Console.WriteLine(numBin);
}
}
}
}
¿Existe una forma de hacer más rápido los recorridos? porque en java tengo el mismo problema.
Espero sus respuestas y saludos.