Triangle WaveTime Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu
Description
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
32
Sample Output
1223332211
3322
3
22
如图所示。
解题思路:
注意最后一行不能有空格,两组输入数据之间也要有空格。
#include<iostream>
#include<cstdio>
using namespace std;
int n,a,b;
void solve(){
for(int j=0;j<b;j++){
for(int i=1;i<=a;i++){
for(int k=1;k<=i;k++){
printf("%d",i);
}
printf("\n");
}
for(int i=a-1;i>=1;i--){
for(int k=i;k>=1;k--){
printf("%d",i);
}
printf("\n");
}
if(j!=b-1){
printf("\n");
}
}
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&a,&b);
solve();
if(i!=n-1){
printf("\n");
}
}
return 0;
}
代码: