洛谷 B2161:十进制转二进制 ← 字符串 / 栈 / vector

发布时间:2026/10/24 5:15:14
洛谷 B2161:十进制转二进制 ← 字符串 / 栈 / vector 【题目来源】https://www.luogu.com.cn/problem/B2161【题目描述】给定一个十进制整数 n请将其转换为对应的二进制表示并输出。【输入格式】输入包含一行一个整数 n。【输出格式】输出一行表示整数 n 的二进制表示不含前导零。【输入样例二】10【输出样例二】1010【数据范围】0≤n≤2^31-1。提示n0 的情况需要特殊考虑。【算法分析】● 使用 C STL 中的stack实现进制转换的核心思路是利用栈“先进后出”的特性。● 提示n0 的情况需要特殊考虑。● 此题代码与“东方博宜OJ 1108”的代码一模一样https://blog.csdn.net/hnjzsyjyj/article/details/158432409【算法代码一string】#include bits/stdc.h using namespace std; int main() { string s; int n; cinn; if(n0) s0; while(n) { s(n%20); n/2; } reverse(s.begin(),s.end()); couts; return 0; } /* in:100 out:1100100 */【算法代码二栈】#include bits/stdc.h using namespace std; stackint stk; int n; int main() { cinn; if(n0) cout0; while(n) { stk.push(n%2); n/2; } while(!stk.empty()) { coutstk.top(); stk.pop(); } return 0; } /* in:100 out:1100100 */【算法代码三vector】#include bits/stdc.h using namespace std; vectorint v; int n; int main() { cinn; if(n0) cout0; while(n) { v.push_back(n%2); n/2; } for(int iv.size()-1; i0; i--) { coutv[i]; } return 0; } /* in:100 out:1100100 */【参考文献】https://blog.csdn.net/hnjzsyjyj/article/details/158432409https://blog.csdn.net/hnjzsyjyj/article/details/149136573https://blog.csdn.net/hnjzsyjyj/article/details/146247521

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询