Triangle Wave

 

Triangle Wave 

In this problem you are to generate a triangular wave form according to a specified pair of Amplitude and Frequency.

 

Input and Output

The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.

Each input set will contain two integers, each on a separate line. The first integer is the Amplitude; the second integer is the Frequency.

For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line.

For the output of your program, you will be printing wave forms each separated by a blank line. The total number of wave forms equals the Frequency, and the horizontal ``height'' of each wave equals the Amplitude. The Amplitude will never be greater than nine.

The waveform itself should be filled with integers on each line which indicate the ``height'' of that line.

NOTE: There is a blank line after each separate waveform, excluding the last one.

Sample Input

 

1

3
2

Sample Output

 

1
22
333
22
1

1
22
333
22
1
 
 
#include<stdio.h>
long ab(long x);
int main()
{
    /**//*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    //*/
    long n;
    scanf("%ld",&n);
    for(long cas=1;cas<=n;cas++)
    {
       long amp,fre;
       scanf("%ld%ld",&amp,&fre);
       for(long k=1;k<=fre;k++)
       {
          for(long i=1;i<=2*amp-1;i++)//1234554321,中间是5,这些数字的下标是123456789,求从1到中间再到1,k=中间数-|中间数-下标|~~~不可能超过中间数,且围绕中间数转,所以就用5-
          {
             long t=amp-ab(i-amp);
             for(long j=1;j<=t;j++)
               printf("%ld",t);
             putchar('\n');
          }
          if(cas!=n||k!=fre) putchar('\n');
       }
    }
return 0;
}
long ab(long x)
{
    return x>0?x:-x;
}

你可能感兴趣的:(算法)