CCF NOI1036 进制转换

问题链接CCF NOI1036 进制转换




时间限制: 1000 ms  空间限制: 262144 KB

题目描述

  模拟将任意给定的正整数n转换成对应的二进制数的过程:对于输入的任意正整数n,输出若干行“shang:* yu:*”的形式,表示其转换过程。

输入

  输入正整数n。

输出

  输出其转为二进制的过程(具体见样例)。

样例输入

13

样例输出

shang:6 yu:1
shang:3 yu:0
shang:1 yu:1
shang:0 yu:1

数据范围限制

  1<=n<=5000




问题分析

  这是一个简单的计算商和余数的问题

  这个程序的结果可以清楚看到进制转换的过程。

程序说明

  (略)

要点详解
  • 除(/)和取余数(%)运算是关键。
  • 使用宏定义可以增加程序的可阅读性和可修改性。
  • 程序需要的不是简洁,而是极其简洁。



参考链接:(略)。

100分通过的C语言程序:

#include <stdio.h>

#define BASE 2

int main(void)
{
    int n, r;

    scanf("%d", &n);

    while(n) {
        r = n % BASE;
        n /= BASE;

        printf("shang:%d yu:%d\n", n, r);
    }

    return 0;
}



posted on 2017-04-22 09:46  海岛Blog  阅读(392)  评论(0编辑  收藏  举报

导航