488 - Triangle Wave - UVa Online Judge [Codigo en C++]

Problema Numero 488 Onda Triangular del Juez UVA en Linea

En este problema es para generar una forma de onda triangular de acuerdo a un par específico de amplitud y frecuencia.

ENTRADA
comienza con un solo número entero positivo en una sola línea que indica el número de los casos siguientes, cada uno de ellos se describen a continuación. Esta línea es seguida por una línea en blanco, y también hay una línea en blanco entre dos entradas consecutivas.Cada conjunto de entrada contendrá dos enteros, cada uno en una línea separada. El primer entero es la amplitud, el segundo entero es la frecuencia.Para cada caso de prueba, la salida debe seguir la siguiente descripción. Los resultados de dos casos consecutivos estarán separados por una línea en blanco.


SALIDA
Para la salida de su programa, usted será la impresión de formularios de onda cada uno separado por una línea en blanco. El número total de formas de onda es igual a la frecuencia y la altura''`` horizontal de cada onda es igual a la amplitud. La amplitud nunca será superior a nueve.La propia forma de onda se debe llenar con números enteros en cada línea, que indican la altura de esa línea.

NOTA: Hay una línea en blanco después de cada forma de onda por separado, excepto el último.

Bueno El Algoritmo esta hecho con recursividad, la verdad es que al recursividad no es muy eficiente como las iteraciones pero hay que mostralo para notar la diferencia.


#include <cstdio>
#include <iostream>
using namespace std;

static int mostrar(int i , int menor , int mayor)
{
if( i == menor)
{
printf("\n");
menor = (menor<mayor)? ++menor : --menor;
i=0;
}

if(menor == mayor)
return 0;

if(i < menor)
{
printf("%d",menor);i++;
return mostrar(i,menor,mayor);
}
}


int main()
{

int casos , amplitud , frecuencia ;
scanf("%d",&casos);

for (int i = casos ; i > 0 ; --i )
{
scanf("%d %d",&amplitud,&frecuencia);

for (int j = frecuencia ; j > 0 ; --j )
{
printf("\n");
mostrar(0,1,amplitud+1);
mostrar(0,amplitud-1,0);

}
}

system("pause>NULL");
return 0;

}
Ultimo