现在的位置: 首页 > 综合 > 正文

寒假刷题之7——波纹

2014年09月05日 ⁄ 综合 ⁄ 共 1783字 ⁄ 字号 评论关闭
 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

  波纹。。。让我想起jojo里面的波纹(好吧我漫画看多了。。。)


  其实这就是画菱形的变形题嘛,而且比画菱形容易。。。

  编出来调试正常却ac不了:

#include <stdio.h>
#include <ctype.h>

int main()
{
	int i, k, j, l, n, f, s;
	
	scanf("%d", &n);
	
	for (i = 0; i < n; i ++){
		scanf("%d%d", &f, &s);
		for (l = 0; l < s; l ++){
			for (k = 1; k <= f; k ++){
				for (j = 0; j < k; j ++)
					printf("%d", k);
				printf("\n");
			}
			for (k = f - 1; k > 0; k --){
				for (j = k; j > 0; j --)
					printf("%d", k);
				printf("\n");
			}
			if (l != s - 1)
				putchar('\n');
		}
	}
	
	return 0;
}

  原来是空行问题,调整一下就ac了。。。它特别要求最后一个没有空行,我以为每一组的最后一个都没有,原来是算全部啊。。。

  那个oj好卡反应很慢很蛋疼。。。

AC代码:

#include <stdio.h>
#include <ctype.h>

int main()
{
	int i, k, j, l, n, f, s;
	
	scanf("%d", &n);
	
	for (i = 0; i < n; i ++){
		scanf("%d%d", &f, &s);
		for (l = 0; l < s; l ++){
			for (k = 1; k <= f; k ++){
				for (j = 0; j < k; j ++)
					printf("%d", k);
				printf("\n");
			}
			for (k = f - 1; k > 0; k --){
				for (j = k; j > 0; j --)
					printf("%d", k);
				printf("\n");
			}
			if (l == s - 1 && i == n - 1)
				return 0;
			putchar('\n');
		}
	}
	
	return 0;
}

   。。。我直接改上次那题的代码,结果那个ctype.h一直放在那边,虽然完全没用到,现在才发现。汗


抱歉!评论已关闭.