首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >棘手的递归函数007

棘手的递归函数007
EN

Stack Overflow用户
提问于 2012-11-04 03:38:47
回答 2查看 572关注 0票数 4

Elo,我从一次旧考试中得到了这个代码片段。这很棘手,我需要一些帮助来弄清楚它是如何打印"007“的。

代码语言:javascript
复制
#include <stdio.h>
/* Desmond Llewelyns */
int M(int Q);
int main(void)
 {

   M(9);
   return 0;
 }
int M(int Q)
 {
   if(Q>1) 
     if(M(Q-1)==0)
       printf("%03d\n", Q);

   return Q-6;
 } 
EN

回答 2

Stack Overflow用户

发布于 2012-11-04 03:42:00

这很简单。

只有当M(Q-1)返回0并且Q的值为7时,才会打印数字。

关于零,这是因为你要求printf在3个位置打印数字,一开始就打印零。printf("%03d\n", Q);阅读更多here

票数 8
EN

Stack Overflow用户

发布于 2012-11-04 03:43:21

当q等于7时,M(Q-1)返回0

printf("%03d\n",Q)将打印7到3个位置,结果为007

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13212780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档