杭电2032
发布网友
发布时间:2022-05-30 02:49
我来回答
共2个回答
热心网友
时间:2023-09-22 02:51
第一个问题,中间的 " j " 是什么意思:
for语句中间需要一个bool值,只写一个j其实就相当于(bool)j,也可以理解成 j != 0。所以for (j=i; j; j--)其实相当于for(j=1; j != 0; j--)
第二个问题,YanHui[j] += YanHui[j - 1]; //怎么算的,帮解释一下:
运行到这里的时候,数组YanHui里的值存放了上一行的值,即第i行的值。这行代码的目的是计算第i+1行的值。你观察下杨辉三角的特点:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
每个值都等于上一行的同一列和前一列的值之和。比如现在i=3, j=2,那么运行到这里,YanHui[j]对应的值是1,YanHui[j-1]对应的值是2,而YanHui[j]的值要变成3,所以YanHui[j] += YanHui[j - 1];
最后想说一句:你会不会单步调试?这些东西你只要单步调试一下就全清楚了!
热心网友
时间:2023-09-22 02:51
for (j = i ; j ; j--) 这是个递减循环的过程,当J=0的时候跳出循环,循环一次,j=j-1也就是j--,控制循环的作用,