本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1≤N≤10)。
输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。
样例:略
#include<stdio.h> //这个题最容易搞错的就是空格数,乍一看,空格好多,不知道有几个空格,最后一行前面也不清楚几个空格;
int main() //但是题中只说了每个数字占4位,所以就默认最后一行前面没有空格(一般这种打印类型的题目,最长的那一行前面都是没有空格的),只是占位的3个空格而已,不用单独输出;
{ //每一行的元素之间也不用考虑多少空格,都不用单独输出,只需要占4位即可,只需要考虑最开始前面的空格数即可。
int a[10][10],i,j,n;
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=n-i-1;j>0;j--)
printf(" "); //先打印空格
for(j=0;j<i+1;j++)
{
if(j==0||j==i)
a[i][j]=1; //找特殊,每一行第一个和最后一个数为1; 也可以先限定除了1的数字:if(i >= 2 && (j >= 1 && j < i))...自己对比哪个方便简单,显然是先限定数字1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j]; //找规律
printf("%4d", a[i][j]);
}
printf("\n"); //别忘了换行符
}
return 0;
}