【UVA】【第0章】488 - Triangle Wave

 Triangle Wave 

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值