【C++解题报告】十进制转换二、八、十六进制

来源:互联网 发布:手机电脑控制软件 编辑:程序博客网 时间:2024/06/18 07:25

题目来源:


    《函数、递推、递归》,递归第7题。

题目描述:

    编程输入一个十进制整数N将它转换成二进制、八进制、十六进制。

输入格式:
 
    输入N。

输出格式:

    输出N的二进制、八进制、十六进制形式。

数据规模与约定:

     0<N<21000000

 
题目思路:
 
    输入N,定义3个函数(bit/oct/hex)分别计算二进制、八进制、十六进制。计算过程如下(以10进制的8转为2进制为例):8-1000.

    8/2=4.....0
    4/2=2.....0
    2/2=1.....0
              1
     如果十进制数n大于1,则bit(n/2),求各个商,再以次输出余数n%2.

     八进制数(如果大于7,oct(n/8),n%8)、十六进制数(如果大于15,oct(n/16),n)道理相同。

代码:

#include<iostream>         //头文件 using namespace std;int bit(int n)             //计算二进制 {if(n>1)                //如果n是大于1 递归调用n/2 再输出n%2 下面的八、十六进制同理 bit(n/2);cout<<n%2;             //输出进制数 }int oct(int n)             //计算八进制 {if(n>7)oct(n/8);cout<<n%8;}int hex(int n)             //计算十六进制 {if(n>15)hex(n/16);cout<<n%16;}int main()                 //定义主函数 {int n;                 //定义变量 cin>>n;bit(n);                //进制的转换 cout<<"\n";oct(n);cout<<"\n";hex(n);cout<<"\n";}





0 0
原创粉丝点击