H - A Simple Triangle (NBUT 1226)
In this problem you need to make a triangle ,just like the sample out. The element in the ith row and jth column
should be the product(乘积) of i and j.
Input
The first line of input is an integer C which indicate the number of test cases.
Then C test cases follow.Each test case contains an integer N (1<=N<=20) in a line which mentioned above.
Output
For each test case, print out the triangle. the triangle separated by a blank line.
If the product is more than 9 (product > 9) you should print a space, or you should print two space.The final number of each line don't need print space.
Sample Input
3
5
6
7
Sample Output
1 2 3 4 5
2 4 6 8
3 6 9
4 8
5
1 2 3 4 5 6
2 4 6 8 10
3 6 9 12
4 8 12
5 10
6
1 2 3 4 5 6 7
2 4 6 8 10 12
3 6 9 12 15
4 8 12 16
5 10 15
6 12
7
Hint
无
题目翻译:
在这个问题中,你需要做一个三角形,就像样本一样。第i行和第j列中的元素
应该是产品(乘积)i和j。
输入
第一行输入是一个整数C,它表示测试用例的数量。
然后是C测试用例。每个测试用例在上面提到的一行中包含一个整数N (1<=N<=20)。
输出
对于每个测试用例,打印出三角形。用一条空线隔开的三角形。
如果产品大于9(产品> 9),您应该打印一个空格,否则!!!您应该打印两个空格。每一行的最终数字不需要打印空间。
样例输入
3.
5
6
7
样例输出
看上面英文原意的输出
提示
无
思路:
这道题看似简单,实则有大坑!!!!题意是当乘积大于9的时候,输出1个空格,否则,输出两个空格。 还需要注意,两组用空行隔开,最后一行不输出空行!!!
AC代码:
#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
int main()
{
int c,n,i,j;
scanf("%d",&c);
while(c--)
{
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i+1;j++)
{
printf("%d",i*j);
if(i*j>9 && j!=n-i+1)
printf(" ");
if(i*j<=9 && j!=n-i+1)
printf(" ");
}
printf("\n");
}
if(c!=0)
printf("\n");
}
return 0;
}