In this problem you are to generate a triangular wave form according to a specified pair ofAmplitude and Frequency.
Input and Output
The input begins with a single positive integer on a line by itself indicatingthe number of the cases following, each of them as described below. This line isfollowed by a blank line, and there is also a blank line between two consecutiveinputs.
Each input set will contain two integers, each on a separate line. The first integer is the Amplitude; thesecond integer is the Frequency.
For each test case, the output must follow the description below. The outputs oftwo 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 waveequals 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 thatline.
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
本题很简单 但是不知道UVA上通过率怎么那么低- -
先输入T
表示有T列波
然后每次读入振幅和频率(如果这真的是频率的话)
然后简单处理
输出
注意要判断如果是最后一列波的最后一个频率(如果这叫频率的话)的最后一个点
就不能输出'\n'了
代码如下
#include <cstdio>
#include <cstdlib>
#include <iomanip>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int T, A, F;
void init_file()
{
freopen("White_GS_9.in", "r", stdin);
freopen("White_GS_9.out", "w", stdout);
}
void read_data()
{
scanf("%d\n", &T);
while(T--)
{
scanf("%d%d", &A, &F);
for(int i = 1; i <= F; i++)
{
for(int j = 1; j <= 2 * A; j++)
{
for(int k = 1; k <= (j <= A ? j : (2 * A - j)); k++)
{
printf("%d", (j <= A ? j : (2 * A - j)));
}
if(T == 0 && i == F && j == 2 * A);
else
printf("\n");
}
}
}
}
void work()
{
}
int main()
{
init_file();
read_data();
work();
return 0;
}