二进制转换 ——大数除法

1132: 数据结构习题--使用栈实现进制转换

时间限制: 1 Sec  内存限制: 128 MB

提交: 15  解决: 9

[提交][状态][讨论版]

题目描述

使用栈将一个很长(>30)的十进制数转换为二进制数

输入

若干个很长的十进制数

每行一个

输出

转换为二进制,每行输出一个

样例输入

123456789012345678901234567890
753951684269875454652589568545854758545824

样例输出

1100011101110100100001111111101101100001101110011111000001110111001001110001111110000101011010010
10001010011110101010001101001000100100100000101001011010001010101001000100111101011001110001000111110010001000101101111110110110100110100000

程序如下:

#include<stdio.h>
#include<string.h>
int main()
{
    char m[1000];
    int i,a[1000],n[1000];

    while(~scanf("%s",m))
    {
        int k=strlen(m),j=0;
        while(1)
        {
            n[j++]=(m[k-1]-‘0‘)%2;
            int c=0;
            for(i=0; i<k; i++)
            {
                int s=((m[i]-‘0‘)+10*c)/2;
                c=(m[i]-‘0‘)%2;
                m[i]=s+‘0‘;
            }
            for(i=0; i<k; i++)
                if(m[i]!=‘0‘) break;
            if(i==k) break;
        }
        for(i=j-1; i>=0; i--) printf("%d",n[i]);
        printf("\n");
    }
    return 0;
}

二进制转换 ——大数除法

时间: 2024-10-13 09:35:22

二进制转换 ——大数除法的相关文章

关于大数除法

最近在九度oj上看了几个关于大数的问题,特意在这里总结一番. 要知道我们要将一个1000多位的十进制数转换为二进制数,是没有哪个类型能装得下的,所以在这里我们的手动模拟辗转相除法.实现将一个很长的十进制数字符串转换成二进制的字符数组. 首先我们来看看这些int,long等等的取值范围,明白它们到底可以存多大,我们才能放心到底什么时候可以用,什么时候不可以用. 数据类型名称 字节数 别名 取值范围 int * signed,signed int 由操作系统决定,即与操作系统的"字长"有关 unsi

2014年百度之星程序设计大赛 - 初赛(第一轮) hdu Grids (卡特兰数 大数除法取余 扩展gcd)

题目链接 分析:打表以后就能发现时卡特兰数, 但是有除法取余. f[i] = f[i-1]*(4*i - 2)/(i+1); 看了一下网上的题解,照着题解写了下面的代码,不过还是不明白,为什么用扩展gcd, 不是用逆元吗.. 网上还有别人的解释,没看懂,贴一下: (a / b) % m = ( a % (m*b)) / b 笔者注:鉴于ACM题目特别喜欢M=1000000007,为质数: 当gcd(b,m) = 1, 有性质: (a/b)%m = (a*b^-1)%m, 其中b^-1是b模m的逆

shu_1171 十-&gt;二进制转换(输入输出控制)

http://202.121.199.212/JudgeOnline/problem.php?cid=1079&pid=19 分析:主要是输出格式控制 "对于每个n,以11位的宽度右对齐输出n值": 即包括该数在内一共11位,右对齐为printf的默认方式,所以用 %11d  来解决. 另外, 输出左对齐与右对齐,需在指定输出长度的时候才有意义: 如无指定长度,则输出从行首开始,有多长输出多长: 左对齐: %-11d 实例: #include <stdio.h> i

python 二进制转换

#二进制装换msg = "大家好"msg1 = msg.encode(encoding='utf-8')#转换成二进制print(msg1)msg2 = msg1.decode('utf-8') #把二进制转换回来print(msg2)'''----------------------python 3.6.2-------------------------''''''---------------希望新学的朋友可以一起互相讨论------------------'''

组合数学 + 大数乘法 + 大数除法 之 hdu 1261 字串数

//  [3/17/2015 JmingS] /* 此题可直接推导出公式: {(A1+A2+……+An)!} / {A1!A2!……An!} 由于 (12×26)! = 312! 只能通过数组来存储,所以又涉及『大数乘法』和『大数除法』, 大数实现的主要思想模拟手算,具体参考程序. */ 1 #include <iostream> 2 #include <cstdlib> 3 #include <cstdio> 4 #include <cstring> 5

十进制转换成二进制以 二进制转换成 8进制和16进制

十进制转换成二进制 举例:752(十进制数) --> 转换成 二进制数 从下往上 读取数据 二进制数为 : 011110000 2.二进制转换成8进制 (开头用 0 表示) 111 -> 表示的十位数 为 7,也是 8进制 每位上 最大的数字 011110000 转换为  8进制 ,从右到左  ,三位 隔开      011-110-000 , 3.二进制转换成16进制(开头用0x表示) 与 二进制转换 大体相同,区别在于 , 在二进制数中,每四位数隔开 ,再分别计算 得到十进制 ,再 进行

虚拟机:二进制转换与此平台上的长模式不兼容

在公司服务器上安装vmware10搭建测试环境,原本很顺利的内容没想到遇到不少问题. 首先是虚拟机安装不成功,远程安装到进度条的时候直接切出去做别的了,回来一看提示没有权限,仔细检查了账号权限没任何问题,以为是vmware版本问题,换了9和11都不行,11点击安装直接乱码报错,真是遇到鬼了,来回翻了好几遍都没返现问题,火大直接一步一步看着安装,终于发现写入注册表时安全狗报警,提示有软件尝试修改系统文件已拒绝,靠!直接X掉安全狗重新安装,一次成功. 然后在vmware上安装一个纯净的centos环

c#常用工具类:文件和二进制转换

//================二进制相关转换类============== #region 将文件转换为二进制数组 /// <summary> /// 将文件转换为二进制数组 /// </summary> /// <param name="FilePath">文件完整路径</param> /// <returns>二进制数组</returns> public static byte[] FileToBinar

NYOJ 275 队花的烦恼一【二进制转换】

简单的二进制转换,注意一下数据范围就可以了 队花的烦恼一 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 ACM队的队花C小+经常抱怨:"C语言中的格式输出中有十六.十.八进制输出,然而却没有二进制输出,哎,真遗憾!谁能帮我写一个程序实现输入一个十进制数n,输出它的二进制数呀?" 难道你不想帮帮她吗?^_^ 输入 输入有多个数据,数据以EOF结束:每个数据ni(0<=ni<=1000010000)用空格隔开: (温馨提示:EOF即是一个文件的结