鱼C论坛

 找回密码
 立即注册
查看: 4046|回复: 7

小白刚学 希望大神能给我详细的解题步骤

[复制链接]
发表于 2021-8-30 17:08:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
执行下面的语句时,语句s++的执行次数为多少?
int s=0;
for(i=1;i<n-1;i++)
{
        for(j=n;j>=n;j--)
        {
                s++;
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-30 17:28:10 | 显示全部楼层
里面一层for只会执行一次,因为满足循环的条件是j要大于等于n,当执行一次后j就减一了,这样j就不满足条件不会再执行了,外面的for会执行n-1-1,这里i是小于n-1的,i的初始化值为1,第一次执行的时候,满足条件,然后i++。执行第1次,下次的判断条件的i为2.执行第2次的时候,下次判断条件的i为3,也就是当。直到运行到i为n-1的时候(也就是执行了n-1-1次的时候),就不满足循环条件了,所以就停止循环了。
所以这个s++最终是运行了(n-1-1)*1次也就是n-2次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-30 17:30:25 | 显示全部楼层
int main()
{
      int s=0,n=5,i,j;
for(i=1;i<n-1;i++)    // 运行n-2
{
        for(j=n;j>=n;j--) // 运行一次 
        {
                s++;
        }
}
printf("%d",s); // n-2 = 3
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-30 17:43:35 | 显示全部楼层
嵌套是相乘
n-2 * 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2021-8-30 18:37:34 | 显示全部楼层
2012277033 发表于 2021-8-30 17:28
里面一层for只会执行一次,因为满足循环的条件是j要大于等于n,当执行一次后j就减一了,这样j就不满足条件 ...

答案不是n-2次,答案是(n-3)(n+2)/2,但是答案里没有写过程
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-30 18:43:39 | 显示全部楼层
hzkxxx 发表于 2021-8-30 18:37
答案不是n-2次,答案是(n-3)(n+2)/2,但是答案里没有写过程

这个答案从哪来的,你将n代入一个实数,确认和方法执行的结果一致吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-30 18:54:49 | 显示全部楼层
hzkxxx 发表于 2021-8-30 18:37
答案不是n-2次,答案是(n-3)(n+2)/2,但是答案里没有写过程

而且你这个公式只有当N为偶数时,才能得出整数,如果是基数,那就会有出现半次的情况,确认下是不是搞错了....
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-30 19:32:08 | 显示全部楼层
2012277033 发表于 2021-8-30 18:54
而且你这个公式只有当N为偶数时,才能得出整数,如果是基数,那就会有出现半次的情况,确认下是不是搞错 ...

确认了。答案确实是那一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-22 23:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表