精华内容
下载资源
问答
  • c语言 十进制转换二进制 递归

    千次阅读 2020-03-17 17:07:16
    本题要求实现一个函数,将正整数n转换二进制后输出。 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。 裁判测试程序样例: #include <stdio.h> void ...

    本题要求实现一个函数,将正整数n转换为二进制后输出。

    函数接口定义:

    void dectobin( int n );
    

    函数dectobin应在一行中打印出二进制的n。建议用递归实现。

    裁判测试程序样例:

    #include <stdio.h>
    
    void dectobin( int n );
    
    int main()
    {
        int n;
    
        scanf("%d", &n);
        dectobin(n);
    
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    

    我的答案:

    void dectobin(int n) 
    {
    	int result = 0;
    
    	if (n == 0) 
    	{
    		printf("0");
    	}
    	else if (n == 1) 
    	{
    		printf("1");
    	}
    	else 
    	{
    		dectobin(n / 2);//这里用到了递归
    		result = n % 2;
    		printf("%d", result);
    	}
    }
    
    

    这里要注意对递归的理解
    这里如果n没有对于0,1的话
    会一直递归
    直到n等于0或1才停止
    最后输出是从较小的n向较大n顺序输出的

    展开全文
  • 上节课我们学习了十进制转换二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗? 我们这节课学习一下二进制转换十进制的方法。方法如下:将...

          上节课我们学习了十进制转换成二进制的方法,那二进制转换十进制是怎么转换的呢?我们来看看下面的动图(白色为二进制,红色为十进制),你找到规律了吗?

    8e278e0a-4213-eb11-8da9-e4434bdf6706.gif

           我们这节课学习一下二进制转换十进制的方法。方法如下:将二进制数从小数点开始,往左从0开始对数值进行正序编号,往右从-1开始对数值进行编号,直到最末位。然后分别将各个位上的数乘以2的K次幂(其中k的值为各个位对应的上述编号),对所得的值求和。

           因为是二进制所以上述乘以2的K次幂。

    90278e0a-4213-eb11-8da9-e4434bdf6706.jpeg

    92278e0a-4213-eb11-8da9-e4434bdf6706.jpeg

           通过上面的学习,我们掌握了二进制转换十进制的方法,那我们把次方法进行知识迁移扩展。R进制转换为十进制数。将R进制数从小数点开始,往左从0开始对数值进行正序编号,往右从-1开始对数值进行编号,直到最末位。然后分别将各个位上的数乘以R的K次幂(其中k的值为各个位对应的上述编号),对所得的值求和。

    96278e0a-4213-eb11-8da9-e4434bdf6706.jpeg下一篇我们会介绍二进制与八进制、十六进制相互转换的方法,欢迎大家继续关注

    99278e0a-4213-eb11-8da9-e4434bdf6706.jpeg

    本公众号介绍计算机基础知识及办公软件的使用方法,欢迎关注!

    展开全文
  • c语言 十进制转换二进制 递归实现

    千次阅读 多人点赞 2019-01-05 17:09:13
    int fun(int n) //十进制转换二进制递归函数 { if(n) //递归停止的条件 { fun(n/2); //递归 printf("%d",n&amp;1); } } 在理解这个递归函数之前,先学了学递归是怎么实现的。 例如: int...

    c语言 十进制转换成二进制 递归实现,函数代码很短,但是很难懂!
    这里再附上最近写的十进制转换二进制–栈实现

    int fun(int n)	//十进制转换成二进制递归函数 
    {
    	if(n)	//递归停止的条件 
    	{
    		fun(n/2);	//递归 
    		printf("%d",n&1);
    	}
    }
    

    在理解这个递归函数之前,先学了学递归是怎么实现的。
    例如:

    int fun1(int n)	//随便写的递归函数
    {
    	if(n)	//递归终止条件 
    	{
    		printf("%d  ",n);
    		fun1(n/2);
    		printf("%d  ",n);
    	}
    }
    

    根据这个函数运行,输入n=12,则输出的是12 6 3 1 1 3 6 12。
    为了能直观的看出递归函数是怎么运行的,需要进行拆分;上面这个函数可以拆分成这样。

    int fun1(int n)	//假设你=12
    {
    	if(n)
    	{
    		printf("%d  ",n);
    		int fun1(n=6)
    		{
    			if(n) 
    			{
    				printf("%d  ",n);
    				int fun1(n=3)
    				{
    					if(n)
    					{
    						printf("%d  ",n);
    						int fun1(n=1)
    						{
    							if(n)
    							{
    								printf("%d  ",n);
    								int fun1(n=0)
    								{
    									if(n) 
    									{
    										printf("%d  ",n);
    										printf("%d  ",n);
    									}
    								}
    								printf("%d  ",n);
    							}
    						}
    						printf("%d  ",n);
    					}
    				}
    				printf("%d  ",n);
    			}
    		}
    		printf("%d  ",n);
    	}
    }
    

    拆分出来的代码不能运行,因为函数中不能定义函数。
    代码是自上向下运行的,所以就不难看出递归函数输出的是12 6 3 1 1 3 6 12。
    通过理解这个举例的递归函数,这个十进制转换成二进制递归函数就变得简单了;总代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    int fun(int n)	//十进制转换成二进制递归函数 
    {
    	if(n)	//递归停止的条件 
    	{
    		fun(n/2);	//递归 
    		printf("%d",n&1);
    	}
    }
    
    int main()
    {
    	int a;
    	scanf("%d",&a);		//输入要转换成二进制的数 
    	fun(a);		//运用函数 
    	system("pause");
    	return 0;
    }
    
    
    展开全文
  • C语言递归解决十进制转换二进制

    千次阅读 2020-02-09 12:48:54
    C语言利用十进制转换二进制的方法

    1、解题思路
    在纸上做过十进制转二进制的朋友应该都用的都是除二取余的方法,写出每一次的余数知道0为止再从下至上依次读取余数即可,类似下图在这里插入图片描述
    根据观察可知十进制转换为二进制的问题属于我上一篇文章所提到的“套娃问题”且十进制转二进制(整数部分)需要从下往上读也就是可以利用递归向上传递的特点,所以用递归来解决,具体思路为
    1、若当前数小于2则直接输出。
    2、若当前数大于等于2,则通过对当前数(比如上图第一步的20)对2取余的得到该位所对应的数(0或1),再对其除二继续计算直到1为止。
    根据递归的向上传递特点,最终得到的数字会依次从下至上输出并的到结果。

    2、代码实现

    #include <stdio.h>
    
    int trans(int x);
    
    int main()
    {
    
        int x;
        scanf("%d",&x);
        trans(x);
        
        return 0;
    }
    
    int trans(int num)
    {
        int a;
        if(num<2)
        {
            printf("%d",num);
        }
        else
        {
            a=num%2; //取余得到对应的数字
            num=num/2;//除二进行下一步计算
            trans(num);
            printf("%d",a);
        }
        return 0;
    }
    
    

    至此问题就解决了,这段代码也可以解决十进制转换为二到九进制的转换,把trans函数中的2改为对应数字即可,原理一样。

    展开全文
  • 我写的十进制转换二进制函数代码是这样的 int fan(int n) { int i=0,a[100]; while(n) { a[i]=n%2; i++; n/=2; } while(i--) printf("%d",a[i]); } 但是我看了大神的代码之后,就有点不懂了...
  • 它正确地转换二进制,我遇到的问题是结束递归调用并将二进制字符串返回到main函数 . 它似乎只是向后通过调用堆栈?有人可以帮我理解发生了什么吗?假设使用命名空间std . 我知道这不是一个好习惯,但是我的课程是...
  • Python实现十进制转换二进制递归实现)
  • 十进制转换二进制形式(比较复杂)下面用递归方式来实现将十进制转换二进制形式的字符串,在编写这个程序之前,必须先了解熟知的进制表示原理,同样一个数值,可以用多种进制进行表示,就好比同样的钱,可以...
  • 10-7 递归实现十进制转换二进制

    千次阅读 2018-12-01 16:31:06
    // 递归实现十进制转换二进制 #include &lt;stdio.h&gt; void dectobin(int n); int main(void) { int n; printf("请输入一个正整数:"); scanf("%d", &amp;n); while (1) ...
  • #include void jingzi(long n); int main() { long n; jingzi(150);...void jingzi(long n)//十进制转换二进制 { int r; r=n%2; if(n>=2) jingzi(n/2); putchar(r==0?'0':'1'); return ; }
  • 实现十进制转换二进制递归实现 以下是C++源代码: #include&lt;iostream&gt; #include&lt;stdio.h&gt; using namespace std; //十进制 转换为 二进制------非递归 int DecToBin(int dec) {...
  • 实现十进制转换二进制递归写法: 以下是C++源代码: #include&lt;stdio.h&gt; #include&lt;iostream&gt; using namespace std; //十进制转换二进制------递归 void db(int n) { if(n==0)...
  • 实现效果如图: 程序核心思想:将一位十进制整数进入...//声明转换二进制的函数 int main(void) { int number; printf("请输入一位十进制数字:\n"); scanf("%d",&number); Change(number); printf("\n")
  • 递归十进制转换二进制

    千次阅读 2018-12-13 18:31:02
  • 你让这件事变得更复杂了。无需功率计算。在def binary_to_decimal(bstring):if not bstring:return 0return binary_to_decimal(bstring[:-1]) * 2 + int(bstring[-1])# Testfor i in range(16):b = format(i, 'b')n ...
  • C语言递归算法将十进制转换二进制C语言递归算法将十进制转换二进制完整源码 C语言递归算法将十进制转换二进制完整源码 #include <assert.h> /** * Decimal to binary using recursion algorithm. * ...
  • 十进制转换二进制

    2020-04-26 15:34:10
    十进制转化成二进制 ...十进制转化二进制递归与非递归算法 #include<stdio.h> #include<stdlib.h> //非递归算法 void fun(int N) { int n; int i=1; int A=0; while(N>=2) { ...
  • 2727: 递归函数--进制转换十进制二进制) Time Limit: 1 Sec Memory Limit: 128 MB Submit: 791 Solved: 328 [Submit][Status][Web Board] Description 输入一个非负整数(十进制),调用递归...
  • 本题要求实现一个函数,将正整数n转换二进制后输出。 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n。建议用递归实现。 裁判测试程序样例: #include &lt;stdio.h&gt; ...
  • 您的binaryForm方法陷入了无限递归中,如果满足以下条件,则需要返回number <= 1:import java.util.Scanner;public class ReversedBinary {public static void main(String[] args) {int number;Scanner in = ...
  • 用Python程序将十进制转换二进制十进制转换二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:def ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 583
精华内容 233
关键字:

十进制转换二进制递归