关于#c语言#的问题:牛客网指导一下

牛客网题目:


题目图片:

img

直接printf 加\n太简单了 然后看到解题代码里有人这么写:

#include "stdio.h"
int main()
{
int i,j,n,k;
scanf("%d",&n);
for(i=0;i<n;i++)//一共循环n次,每次一行
{
//1到n行第一个v之前分别要写0-n-1个空格
for(j=i;j>0;j--)//j和i同步,i越大j每次输出的空格越多
{
printf(" ");
}
//空格后输出第一个v
printf("v");
//v后写空格,原理和上个相同
for(k=i;k<2*(n-(i+1))-1+i;k++)
{
printf(" ");
}
//每次循环最后写一个v,除了最后一次
if(i<n-1)
printf("v\n");
}

return 0;

}

我是初学者,k<2*(n-(i+1))-1+i 这个循环判定条件不是很理解,请求解答一下吗,万分感谢。

等价于 for(k=1;k<2*(n-i-1);k++)