zoukankan      html  css  js  c++  java
  • 十进制转其他进制

    //进制的转换
    #include <iostream> #include <stack> using namespace std; void trans(int N,int B) //参数N为要进行转换的数,参数B是将要转换成的进制 { stack<int> st1; while(N!=0) { st1.push(N%B); N/=B; } while(!st1.empty()) //当栈不空的时候,不断地检测栈顶的元素出栈并且判断其是否大于10 { switch(st1.top()) { case 10:cout<<"A"; //大于10之后的进制转换就要使用字母来代替 break; case 11:cout<<"B"; break; case 12:cout<<"C"; break; case 13:cout<<"D"; break; case 14:cout<<"E"; break; case 15:cout<<"F"; break; default: //如果栈中的元素小于10,则直接输出原数值 cout<<st1.top(); } st1.pop(); //将栈顶的元素pop出去 } return ; } int main() { while(1) { int N,B; cout<<"请输入要转换的数N:"; cin>>N; cout<<endl; cout<<"请输入要转换的进制B:"; cin>>B; cout<<endl; cout<<"将十进制的"<<N<<"转换成"<<B<<"进制后为:"; trans(N,B); cout<<endl<<endl; } return 0; }
    /*

    其实个人觉得使用栈的结构特点可以解决递归的一些问题,这里用了栈,还可以使用递归。
    老师在讲栈的时候提到进制的转换,好像当时他说在进制转换超过十进制时使用switch语句会增加时间复杂度,他讲了一种使用ASCII码的方法,只是我忘了怎么用。

    路过的童鞋知道上述那种使用ASCII码的方法控制输出来减少时间复杂度的话,请顺便告诉我一声,不胜感激

    */



  • 相关阅读:
    中断 异常 系统调用的比较
    线性结构-线性表
    数据结构引例
    友链
    投喂
    给出两个单词(start和end)与一个字典,找出从start到end的最短转换序列
    C++类内存分布
    内存的堆分配和栈分配 & 字符数组,字符指针,Sizeof总结
    C++内存管理学习笔记(7)
    C++内存管理学习笔记(6)
  • 原文地址:https://www.cnblogs.com/Guhongying/p/7672415.html
Copyright © 2011-2022 走看看