• 【字符串】P2084 进制转换-C++


    题目描述
    今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 :
    
    1*2^4+0*2^3+1*2^2+0*2^1+1*2^0,
    
    那么请你编程实现,将一个M进制的数N转换成十进制表示的式子。
    
    注意:当系数为0时,该单项式要省略。
    
    输入输出格式
    输入格式:
    两个数,M和N,中间用空格隔开。
    
    输出格式:
    共一行,一个十进制表示的式子。
    
    输入输出样例
    输入样例#1: 
    2 10101
    输出样例#1: 
    1*2^4+1*2^2+1*2^0
    说明
    对于100%的数据,1<M<10,N的位数不超过1000。
    

    这道题直接用字符串来完成就好了,代码实现很简单,实现如下:
    ps.由于代码里面注释比较详细所以就不多做解释,具体看下面的代码哈

    AC代码:

    #include<bits/stdc++.h>//万能头文件,推荐 
    using namespace std;
    int main()
    {
        int m,n_;//m为题中设定条件,n_表示字符串n的长度,下面定义; 
        bool first=true;//控制加号 
        string n;//用字符串进行判断 
        cin>>m>>n;//输入 
        n_=n.length();//获取字符串n的长度 
        for(int i=0;i<n_;i++)
        {
            if(n[i]=='0')continue;//如果系数为0就不输出,重新开始循环 
            if(n[i]!='0'&&first)//如果系数不为0就进行输出 
            {
                cout<<n[i]<<"*"<<m<<"^"<<n_-1-i;//如果是第一个就不输出加号 
                first=false;
                continue;//重新开始循环
            }
            if(n[i]!='0')//如果系数不为0就进行输出
            {
                cout<<"+"<<n[i]<<"*"<<m<<"^"<<n_-1-i;//不是第一个就输出加号 
                continue;//重新开始循环
            }
        }
        return 0;//别忘了它 
    }
    

    ov.

    个人博客地址: www.moyujiang.com 或 moyujiang.top
  • 相关阅读:
    使用express框架创建服务器
    搭建第一个node服务器
    Node 与JS的区别
    node学习之路
    【每天一个linux命令】read
    【每天一个linux命令】awk
    【每天一个linux命令】wc
    【每天一个linux命令】sed
    【每天一个linux命令】tee
    【每天一个linux命令】find
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167785.html
Copyright © 2020-2023  润新知