Friday, May 27, 2016

488-Triangle wave-UVA solution hints

https://uva.onlinejudge.org/external/4/488.pdf

Here it's an easy problem but there's only one trick that is "There is a blank line after each separate waveform, excluding the last one" . It's means you have to print a blank line after every waveform except the last one so in last line when programme will terminate there no blank line is needed . 

1 . As it is said in the sample input that  3 is the amplitude which means how high the horizontal line will be and frequency is 2 that means how times same triangle should be print . 

2 . It is also said that Amplitude will never been greater than 9 so you can store 1,22,333,4444,55555 just like this until 9 into an string array and print those how many times it's needed to print. 

N.B : I have got 10 times presentation error for problem of printing blank line so handle it carefully . 

An accepted code is given below : 

#include<bits/stdc++.h>
using namespace std;

int main()
{
    string wave[100]={"1","22","333","4444","55555","666666","7777777","88888888","999999999"};
    int i,t,j,a,b;

    scanf("%d",&t);

    while(t--)
    {
        scanf("%d%d",&a,&b);

        while(b--)
        {
            for(j=0;j<a;j++)
            {
                cout<<wave[j]<<endl;
            }

            for(j=a-2;j>=0;j--)
            {
                cout<<wave[j]<<endl;
            }

            if(b || t)
            {
            printf("\n");
            }

        }

    }

    return 0;
}
    

No comments:

Post a Comment