for循环怎么计算判断次数?
main(){int i,j,k,m,n=0;
for(i=1;i<=10;i++) /*列举4个1到9之间的数的所有排列,供选择*/
for(j=1;j<=10;j++)
for(k=1;k<=10;k++)
for(m=1;m<=10;m++)
{if(i==j||i==k||i==m||j==k||j==m||k==m) continue;
if(i+j+k+m!=12)continue; /*不满足条件,舍弃*/
n++; /*满足条件的排列计数*/
printf("{%d,%d,%d,%d,}",i,j,k,m);
if(n%6==0)printf("\n"); /*每行输出6个排列*/
}
}
运行结果:{1,2,3,6} {1,2,4,5} {1,2,5,4} {1,2,6,3}...... 结果在这不一一列举了
问题:代码中共循环了9^4=6561次,然后后面它说每次循环判断8次,共8*9^4=5488次判断,这个判断次数我不知道怎么得出来的,8次判断分别是哪些?for语句的表达式2是控制条件语句,4个for语句,然后花括号里的3个if语句,在我的理解看来是7个判断。 加一个变量呗
int count = 0;
最内层for
count++; 万千只cnm 发表于 2021-6-11 22:21
加一个变量呗
int count = 0;
最内层for
不是啊,我是问总共代码里要判断多少次,所有的排列的,不管符合条件的还是不符合条件的 3个if语句,第一个是6个判断,总共8个,话说研究这个有意义吗 wp231957 发表于 2021-6-12 05:14
3个if语句,第一个是6个判断,总共8个,话说研究这个有意义吗
是没啥意义,但是想知道罢了,不然我以为又是书错的了,这书印刷看的我有点一言难尽,等新书到了就不看这书了
页:
[1]