UVA 488

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;
	}
	}
}

 

运行如下:

posted @ 2010-10-25 22:25  hailong  阅读(552)  评论(0编辑  收藏  举报