1 条题解
-
3
【题目大意】
本题考察进制转换的过程,要求将数字转换为进制输出。
【考纲知识点】
基本运算、输入输出语句(一级)、一维数组的知识(三级)、进制转换(三级)。
【解题思路】
通过短除法取余数,将每次取余的结果储存在一个数组里,直到,将剩余的存入数组,最后将数组倒序遍历输出即可。
*注意,十进制下除以大于等于 10 的数会出现两位数的情况,所以需要一个字符串来转换成对应的字母。
【参考程序】
#include <bits/stdc++.h> using namespace std; string c="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//对应字符。 char a[100005]; int top,n,r; int main(){ cin>>n>>r; while (n>=r){ //短除法过程,n>=r时进入循环 a[++top]=c[n%r]; //每次循环把n对r取余的结果存进a数组 n/=r; //n的值更新为n除以r的结果 } a[++top]=c[n]; //循环结束后把剩余的n存入a数组 for (int i=top;i>=1;i--){ //将取余结果和最后剩余的n倒序输出 cout<<a[i]; } return 0; }
- 1
信息
- ID
- 562
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 114
- 已通过
- 51
- 上传者