[codeup] 1943 进制转换
题目描述
将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。
输入
多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数)
输出
每行输出对应的二进制数。
样例输入
0
1
3
8
样例输出
0
1
11
1000
IDEA
长整数用字符串形式存储,主要解决的问题是字符串如何进行除法和余数。余数不用多说,就是最后一位余2就行。除法则应该按照平时手算除法的顺序进行,比如:
for (i = 0; i < len - 1; i++) {
	s[i+1] += (s[i] % 2) * 10;
	s[i] /= 2;
}
剩下的就是依照平时的整数进制转换的顺序来即可。
SOLUTION
#include <stdio.h>
#include <string.h>
int main()
{
	int i, len, num, sum;
	char s[100];
	char ans[100];
	while (scanf("%s", s) != EOF) {
		len = strlen(s);
		for (i = 0; i < len; i++)
			s[i] -= '0';
		num = 0;
		memset(ans, 0, sizeof ans);
		do {
			/* sum of each digit */
			sum = 0;
			/* % 2 */
			ans[num++] = s[len - 1] % 2 + '0';
			/* / 2 */
			for (i = 0; i < len - 1; i++) {
				s[i+1] += (s[i] - ((s[i] >> 1) << 1)) * 10;
				s[i] >>= 1;
				sum += s[i];
			}
			s[i] >>= 1;
			sum += s[i];
		} while (sum != 0);
		while (num--)
			putchar(ans[num]);
		putchar('\n');
	}
	return 0;
}
[codeup] 1943 进制转换的更多相关文章
- C++笔记(7)——一些模拟题:简单模拟、查找元素、图形输出、日期处理、进制转换、字符串处理
		以下内容基本来自<算法笔记>,作者为胡凡,建议直接买书看,我这里只是摘抄部分当笔记,不完整的. 简单模拟 就是一类"题目怎么说你就怎么做"的题目.这类题目不涉及算法,只 ... 
- SQL Server 进制转换函数
		一.背景 前段时间群里的朋友问了一个问题:“在查询时增加一个递增序列,如:0x00000001,即每一个都是36进位(0—9,A--Z),0x0000000Z后面将是0x00000010,生成一个像下 ... 
- [No000071]C# 进制转换(二进制、十六进制、十进制互转)
		using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ... 
- JS中的进制转换以及作用
		js的进制转换, 分为2进制,8进制,10进制,16进制之间的相互转换, 我们直接利用 对象.toString()即可实现: //10进制转为16进制 ().toString() // =>&q ... 
- 结合stack数据结构,实现不同进制转换的算法
		#!/usr/bin/env python # -*- coding: utf-8 -*- # learn <<Problem Solving with Algorithms and Da ... 
- 进制转换( C++字符数组 )
		注: 较为简便的方法是用 整型(int)或浮点型(long.double 注意:该类型不一定能够准确存储数据) 来存放待转换的数值,可直接取余得到每一位数值 较为稳定的方法是用 字符数组储存待转换的数 ... 
- JS 进制转换
		十进制转换成其他进制 objectname.toString([radix]) objectname 必选项.要得到字符串表示的对象. radix 可选项.指定将数字值转换为字符串时的进制. 例如 ... 
- php的进制转换
		学习了php的进制转换,有很多的知识点,逻辑,也有最原始的笔算,但是我们还是习惯使用代码来实现进制的转换,进制的转换代码有如下:二进制(bin)八进制( oct)十进制( dec)十六进制( hex) ... 
- C++ 中数串互转、进制转换的类
		/******************************************************************** created: 2014/03/16 22:56 file ... 
随机推荐
- jQuery中的AJAX的使用
			1.运用ajax()方法,比其它如load().get().post()全局性函数它更多地关注实现过程中的细节:首先要了解其参数列表: url: 要求为String类型的参数,(默认为当前页地址)发送 ... 
- python中的 += 与 +
			这一部分首先要理解python内存机制,Python中万物皆对象. 对于不可变对象,改变了原来的值,其别名(变量名)绑定到了新值上面,id肯定会改变 对于可变对象,+ 操作改变了值,id肯定会变,而+ ... 
- 阿里巴巴集团2013实习生招聘技术类笔试卷(B)
			一.单选题 1.在常用的网络协议中,___是面向连接的.有重传功能的协议. A.IP B.TCP C.UDP D.DXP 2.500张多米诺骨牌整齐地排成一列,依顺序编号为1.2.3… ... 
- Mac iTerm2登陆CentOS提示warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
			[报错原因]:没有utf-8这个语系(没添加语言_国名前缀),LC_ALL又没设定值. 服务端解决方法: 在远程系统上, /etc/environment 加入以下两行,重新登陆即可. LANG=en ... 
- Docker容器的自动化监控实现
			本文由 网易云 发布. 近年来容器技术不断成熟并得到应用.Docker作为容器技术的一个代表,目前也在快速发展中,基于 Docker的各种应用也正在普及,与此同时 Docker对传统的运维体系也带来 ... 
- 975. Odd Even Jump
			You are given an integer array A. From some starting index, you can make a series of jumps. The (1 ... 
- “全栈2019”Java多线程第二十四章:等待唤醒机制详解
			难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ... 
- Windows下TensorFlow安装指南(图文版)
			随着深度学习概念火起来,TensorFlow也跟着成为业界流行的深度学习框架.它采用CPU+GPU的并行计算模式,使得神经网络可以有效的并行计算,从以前的三层网络到现在的深层网络,深度学习+tenso ... 
- 带你走进php大马的结构模块编写之路
			本文原创作者:Laimooc 第一部分:前沿综述 本次我主要写了[文件的创建].[文件的删除].[文件的上传].[目录浏览].[命令执行]小模块,以及[组合的目录浏览和文件删除功能]的模块: 实验环境 ... 
- module.export与export的区别?
			对于大多数node初学者而言, module.exports应该都是理解的, 但多出来一个exports获取就有些疑问了 疑问一: 既然有module.exports了为什么还要有exports? 疑 ... 
