题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=429
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
代码:
- /*
- *注意点:There is a blank line after each separate waveform,
- * excluding the last one. 除了最后一个波,其余波后面输出换行,
- * 可以把换行接到后一个波上。用first表示第一个,第一个波前面不用换
- * 行,其余波在输出前先翻墙。
- */
- #include <iostream>
- #include <string>
- #include <cstdio>
- #include <cctype>
- using namespace std;
- int main()
- {
- #ifdef LOCAL
- freopen("f:\\input.txt", "r", stdin);
- #endif LOCAL
- int n, first = 0;//first 用来控制换行
- cin >> n;
- while(n--)
- {
- int A, F;// A 表示振幅,F表示频率。
- cin >> A >> F;
- for(int i = 0; i < F ; ++i)
- {
- if(first == 0)
- {
- first = 1;
- }
- else
- {
- cout << endl;
- }
- int temp = 2 * A - 1, j;
- for(j = 1 ; j <= A; ++j)
- {
- for(int k = 0; k < j; ++k)
- {
- cout << j;
- }
- cout << endl;
- }
- for(; j <= temp; ++j)
- {
- for(int k = 0; k < temp + 1 - j; ++k)
- {
- cout << temp + 1 - j;
- }
- cout << endl;
- }
- }
- }
- return 0;
- }