[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 ...
 
随机推荐
- ReactJS 官网案例分析
			
案例一.聊天室案例 /** * This file provided by Facebook is for non-commercial testing and evaluation * purpos ...
 - C# 创建、部署和调用WebService简单示例
			
webservice 可以用于分布式应用程序之间的交互,和不同程序之间的交互. 概念性的东西就不说太多,下面开始创建一个简单的webservice的例子.这里我用的是Visual Studio 201 ...
 - jQuery ajax的jsonp跨域请求
			
一直在听“跨域跨域”,但是什么是跨域呢?今天做了一些了解.(利用jQuery的jsonp) jQuery使用JSONP跨域 JSONP跨域是利用script脚本允许引用不同域下的js实现的,将回调方法 ...
 - Android Studio - Unable to create Debug Bridge: Unable to start adb server: adb server version (32) doesn't match this client (40)
			
错误提示:Unable to create Debug Bridge: Unable to start adb server: adb server version (32) doesn't matc ...
 - JavaScript定时器作业
			
JavaScript定时器作业 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta char ...
 - spring-security(2)
			
记录一下spring security的配置 配置详解 <?xml version="1.0" encoding="UTF-8"?> <bea ...
 - shell 多线程
			
不熟悉 io 重定向的童鞋,先学习一下相关知识 http://www.linuxplus.org/kb/io-redirection.html 下面是简单代码 #!/bin/bash tmpfile= ...
 - mysql enterprise backup入门使用
			
**************************************************************--1.全备******************************** ...
 - Flask从入门到精通之flask程序入门
			
初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...
 - 《JAVA与模式》之代理模式
			
在阎宏博士的<JAVA与模式>一书中开头是这样描述代理(Proxy)模式的: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式的结 ...