Lao?? 2017-06-12 00:37 采纳率: 33.3%
浏览 1489
已采纳

程序设计题求大神解答

分析如下代码for(i=1;i<n;i++) for(j=1;j<i;j++) for(k=1;k<j;k++) printf("\n");
问printf语句共执行了几次?这段代码执行完以后i+j+k值为多少?

  • 写回答

9条回答 默认 最新

  • Rattenking Python领域优质创作者 2017-06-12 02:21
    关注

    首先我们假设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;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器