本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
洛谷:B2143 进制转换 - 洛谷 (luogu.com.cn)
【题目描述】
用递归算法将一个十进制整数X XX(1 ≤ X ≤ 10 9 1 \le X \le 10^91≤X≤109)转换成任意进制数M MM(2 ≤ M ≤ 16 2\le M\le162≤M≤16,M MM为整数)。
【输入】
一行两个数,第一个十进制整数X XX,第二个为进制M MM。
【输出】
输出结果。
【输入样例】
31 16【输出样例】
1F【算法标签】
《洛谷 B2143 进制转换》 #函数与递归#
【代码详解】
#include<bits/stdc++.h>usingnamespacestd;intx,m;// x: 要转换的十进制数, m: 目标进制(2-16)chara[16]={'0','1','2','3',// 字符数组,存储0-15对应的字符'4','5','6','7','8','9','A','B','C','D','E','F'};string ans;// 存储转换结果intmain(){cin>>x>>m;// 输入十进制数x和目标进制m// 处理特殊情况:x=0if(x==0){cout<<"0"<<endl;return0;}// 将十进制数x转换为m进制while(x){ans=a[x%m]+ans;// 取余数,找到对应字符,加到结果字符串前面x/=m;// 除以m,继续处理下一位}cout<<ans<<endl;// 输出转换结果return0;}【运行结果】
31 16 1F