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<iostream>
using namespace std;
void print_num(int n)
{
for(int i=0;i<n;++i)
cout<<n;
cout<<endl;
}
void print_wave(const int n)
{
for(int i=1;i<2*n;++i)
{
if(i<=n)
print_num(i);
else
print_num(2*n-i);
}
}
int main()
{
int n,a,b;
cin>>n;
while(n--)
{
cin>>a>>b;
while(b--)
{
print_wave(a);
cout<<endl;
}
}
}
运行如下: