我希望用 C 语言打印一个模式,如下所示:
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
目前我有这个:
int main()
{
int i,j;
for(i=1;i<=5;i++)
{
for(j=1;j<=5;j++)
{
if(i>=j)
{
printf(" %d ",j+i-1);
}
}
printf("\n");
}
printf("\n");
}
我没有得到想要的结果。请有人帮忙
最佳答案
基本上,如果您分析每行数字之间的差异:
1
2 6
3 7 10
4 8 11 13
5 9 12 14 15
^ ^ ^ ^
diff 4 3 2 1
然后对于每一列(除了等于行的第一列),公式为:
col_value = val(row, col-1) + (5-col))
例如最后一行:
5 9 12 14 15
9 = 5 + (5-1)
12 = 9 + (5-2)
14 = 12 + (5-3)
15 = 14 + (5-4)
代码:
#include<stdio.h>
int main()
{
int i,j,k;
for(i=1;i<=5;i++)
{
k = i;
for(j=1;j<=i;j++)
{
printf("%d ", k);
k += 5-j;
}
printf("\n");
}
return 0;
}
关于c - 用 C 打印一个图案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778816/