开发者社区> 问答> 正文

C语言递归算法写二进制转十进制的程序

请问c语言怎样用递归算法写二进制转十进制的程序?谢谢

展开
收起
知与谁同 2018-07-21 15:53:49 4057 0
3 条回答
写回答
取消 提交回答
  • TA有点害羞,没有介绍自己...
    #include<stdio.h>

    int power(int x,int n)
    {
    if(0==n)
    return 1;
    else
    return x*power(x,n-1);
    }

    void main()
    {
    int i,num,result=0;
    puts("Input the num in binery:");
    scanf("%d",&num);
    int a[10];
    for(i=9;i>=0;i--)
    a[i]=(num/power(10,9-i))%10;
    for(i=0;i<10;i++)
    result+=a[i]*power(2,9-i);
    printf("The result is %d\n",result);
    }
    2019-07-17 22:55:09
    赞同 展开评论 打赏
  • #include <stdio.h>

    void fun(int num)
    {
    if (!num)
    {
    return;
    }
    fun(num/2);
    printf("%d",num%2);
    }

    void main()
    {
    int num;
    scanf("%d",&num);
    printf("二进制为:");
    fun(num);
    }
    2019-07-17 22:55:09
    赞同 展开评论 打赏
  • 12535
    #include"stdio.h"
    double power(double x,int n) //递归实现函数转换{double val=1.0;
    while(n--)
    val*=x;
    return(val);}void main()
    {int i,n,value=0; char ch;
    printf("请输入您要输入的二进制位数:");
    scanf("%d",&n);
    printf("输入一个%d位二进制数:",n);
    for(i=n;i>=0;i--)
    {scanf("%c",&ch);
    if(ch=='1') value+=int(power(2,i));}
    printf("十进制是:%d\n",value);
    } 由于本人的英语水平有限,所以就用VC++软件,用C的知识写了这个程序。。 如果你要在C里运行。。貌似要把 中文 全部翻译成 英文 即可。。。
    2019-07-17 22:55:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载