zoukankan      html  css  js  c++  java
  • 【字符串】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
  • 相关阅读:
    nginx结合tomcat一起使用
    Markdown速成班
    git pull VS git fetch&merge
    Spring框架学习
    WMS专业名词解释
    持续集成与灰度发布
    selenium webdriver入门
    理解HTTP session原理及应用
    linux常用命令
    转载:Mongodb start
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167785.html
Copyright © 2011-2022 走看看