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

会递归的大神进来,能帮帮忙吗,不难

会递归的大神进来,能帮帮忙吗,不难

C C++
XAGT 2017-11-09 08:06:46
要运用递归函数将十进制数转换成二进制数。 能用C语言写吗,新手,想了很久也不会,一定要用递归函数。
查看完整描述

3 回答

?
慕用4063026

TA贡献195条经验 获得超115个赞

//以二进制的形式输出整数
#include<stdio.h>
void to_binary(unsigned long n);
int main()
{
 unsigned long number;
 printf("请输入一个整数(按q退出):\n");
 while(scanf("%ul",&number)==1)
 {
  printf("二进制数是:");
  to_binary(number) ;
  putchar('\n');
  printf("请输入一个整数(按q退出):\n");
  
 }
 printf("Done.\n");
 return 0;
 } 
void to_binary(unsigned long n)//递归函数
 {
  int r;
  r=n%2;
  if(n>=2)
  to_binary(n/2);
  putchar('0'+r);
  }


查看完整回答
反对 回复 2017-11-10
?
流走

TA贡献7条经验 获得超0个赞

#include <stdio.h>
int a[100]={-1};
int i;
void turn (int num){
    if(num){
        a[i++]=num%2;
        turn(num/2);
    }
}
int main(int argc, const char * argv[]) {
    i=0;
    int n;
    scanf("%d",&n);
    turn(n);
    for(int j=i-1;j>=0;j--){
        printf("%d",a[j]);
    }
    printf("\n");
    return 0;
}

差不多的

查看完整回答
反对 回复 2017-11-09
?
流走

TA贡献7条经验 获得超0个赞

#include <iostream>
#include <vector>
using namespace std;
vector <int> a;
void turn (int n){
    if(n){
        n/=2;
        int m=n%2;
        a.push_back(m);
        turn(n);
    }
}
int main(int argc, const char * argv[]) {
    int x=10;
    turn(x);
    for(int i=0;i<a.size();i++){
        cout<<a[i];
    }
    return 0;
}

c++差不多吧。。


查看完整回答
反对 回复 2017-11-09
?
慕用4063026

TA贡献195条经验 获得超115个赞

编写递归函数将十进制数转换成二进制数输出。
* 算法说明:
*/
#include <iostream>
using namespace std;
void d2b( int n )
{
}
int main()
{
int a;
cin >> a; //输入十进制数
d2b( a ); //转换成二进制数输出
return 0;

#include<iostream>

using namespace std;

void d2b(int n)
{
 if (n == 0)
 {
  return;
 }
 else
 {
  d2b (n / 2);

  n = n % 2;

  cout << n;
 }
}
int main()
{
 int a;

 cout<<"请输入一个十进制数:";

 cin >> a;

 if (a == 0)
 {
  cout << 0;
 }
 else
 {
  cout << "二进制数为:";

  d2b ( a );
 }
 cout << endl;

 return 0;
}



查看完整回答
反对 回复 2017-11-09
  • 3 回答
  • 0 关注
  • 2685 浏览

添加回答

举报

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