为了账号安全,请及时绑定邮箱和手机立即绑定

递归完毕之后不应该是只执行一次cout吗?还有为什么会倒叙输出?(十进制转换二进制递归实现方法)

递归完毕之后不应该是只执行一次cout吗?还有为什么会倒叙输出?(十进制转换二进制递归实现方法)

C C++
破晓之饮 2017-03-30 13:43:45
#include "stdafx.h"#include "iostream"using namespace std;void f(int n);int _tmain(int argc, _TCHAR* argv[]){ int a; cout<<"123123"<<endl; cin>>a; if(a==0) cout<<0<<endl; else { f(a); } cout<<endl; return 0;}void f(int n){ if(n==0) { return; } else { f(n/2);    //这个是怎么实现的呢?请讲的具体些。最好举个例子 cout<<n%2; }}
查看完整描述

1 回答

?
asd8532

TA贡献143条经验 获得超187个赞

每退出一次输出一次才是递归啊,之前剩下的也要执行啊

查看完整回答
1 反对 回复 2017-03-30
  • 破晓之饮
    破晓之饮
    那为什么f(0)之后会多次cout呢?
  • asd8532
    asd8532
    100 f(100) n=100->f(50)(余数是0)->f(25)(余数0)->f(12)(余数1)->f(6)(余数0)->f(3)(余数0)->f(1)(余数1)->f(0)(1),哪里多了 倒序1100100
  • 1 回答
  • 0 关注
  • 1495 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信