分析如下代码for(i=1;i<n;i++) for(j=1;j<i;j++) for(k=1;k<j;k++) printf("\n");
问printf语句共执行了几次?这段代码执行完以后i+j+k值为多少?
程序设计题求大神解答
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
9条回答 默认 最新
关注 首先我们假设i < n满足条件,
那么当 i = 1;第一次循环,(j = 1 ; j < i; j++)这个条件不满足,返回。
第二次i = 2; j = 1; k = 1;不满足,返回。
当i = 3;j = 1 && j < 3;k = 1 && k < 1;这一个返回。j = 2 &&j < 3;k = 1 && k < 2;执行一次printf 共执行一次
当i = 4;排除j = 1;直接j = 2开始。执行一次printf,j = 3;k < 3; k = 1,k = 2;执行两次printf 共执行三次
当i = 5;j = 2一次,j = 3两次,j = 4三次 共六次次
当i = 6;j = 2一次,j = 3两次,j = 4三次 j = 5四次 共十次
由此推断n必须大于2
假如n=8;1 + 1 + 2 + 1 + 2 + 3 + 1 + 2 + 3 + 4 + 1 + 2 + 3 + 4 + 5
总次数:1*(n - 3) + 2 (n - 4) + 3 (n - 5) + ... + (n-3)*(n - n + 1)i = n ; j = n - 1 ; k = n -2;
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器