进制转换 (九度oj--大整数除法)
前言唉,总感觉想帮助老师确是力不从心,只能尽自己最大的努力,这一年多下来看还是学生靠谱,学历高靠谱,学历不能反应所有问题,但是可以反应大部分问题,至少我身为硕士经常学习算法或者计算机其它方面东西到深夜
题目
AC代码#include <stdio.h>#include <string.h>#include <stdlib.h> #define DATA 40#define MAX 200 void tenToBin(char *str); char bin[MAX]; int main(){ char str[DATA]; while(scanf("%s", str) != EOF) { tenToBin(str); puts(bin); } return 0;} /** * Description:字符串整数转换为二进制 */void tenToBin(char *str){ int i, j, k, len, sum, d; char temp; //初始化参数 sum = 1; len = strlen(str); k = 0; memset(bin, 0, sizeof(bin)); while(sum) { sum = 0; for(i = 0; i < len; i ++) { d = (str[i] - '0') / 2; sum += d; if(i == len - 1) { bin[k ++] = (str[i] - '0') % 2 + '0'; }else { str[i + 1] += (str[i] - '0') % 2 * 10; } str[i] = d + '0'; } } //逆序 for(i = 0, j = k - 1; i < j; i ++, j --) { temp = bin[j]; bin[j] = bin[i]; bin[i] = temp; }}/************************************************************** Problem: 1138 User: wangzhengyi Language: C Result: Accepted Time:90 ms Memory:908 kb****************************************************************/