首页 > 代码库 > Uva488 Triangle Wave

Uva488 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>

void printTriangel(int m)
{
	int i, j;
	for(i = 1; i < m; ++i){
		for(j = 1; j <= i; ++j)
			printf("%d", i);
		printf("\n");
	}
	
	while(i >= 1){
		for(j = 1; j <= i; ++j)
			printf("%d", i);
		printf("\n");
		--i;
	}
}

int main()
{
	int t, m, n;
	scanf("%d", &t);
	while(t--){
		scanf("%d%d", &m, &n);
		while(n--){
			printTriangel(m);
			if(t || n) putchar('\n');
		}
	}
	return 0;
}