考研机试题目-清华大学-28道

本文包含五个编程题目:1) 进制转换,将M进制数转为N进制;2) 成绩排序,按降序或升序排列;3) 约数个数,输出整数的约数数量;4) 代理服务器,找到切换次数最少的访问方案;5) 反序输出,输入任意字符并反序显示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.进制转换
题目描述
将M进制的数X转换为N进制的数输出。
输入描述:
输入的第一行包括两个整数:M和N(2<=M,N<=36)。
下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出。

输出描述:
输出X的N进制表示的数。

输入时字母部分为大写,输出时为小写,并且有大数据。

输入例子:
16 10
F

输出例子:
15

#include <bits/stdc++.h>//万能头文件
using namespace std;//C++固定文法
int main(){
    string S;//声明字符串S
    stack<char> T;//声明字符型栈T
    for(int M,N,lm,i,j,c;cin>>M>>N>>S;cout<<endl)
    {
  //输入M,N,S,没有输入则输出
        lm = S.length();//取S的长度设为lm
        vector<int> V(lm,0);//声明整型向量V
        for(i=0;i<lm;V[i]=(isalpha(S[i])?S[i]-'A'+10:S[i]-'0'),++i)//判断是否为字母,是则输出相对A的数值,否则输出相对0的数值
        ;//结束for循环,不执行操作
        for(i=0;i<lm;V[i]?0:++i)
        {
            {
                V[j]+=c*M;
                c=V[j]%N;
                V[j]/&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值