zoukankan      html  css  js  c++  java
  • pat 乙级1074

    题目如下:

    思考:

    1.0527 这个例子发现 如果为0 代表十进制

    2.需要去掉前面的0 如果是089 那么只需要输出 89

    3.长度+1,因为999+111 会产生进位

    4.两个字符串都是 0+0 这种情况需要考虑!

    代码如下:

    #include<cstdio> 
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    int main(){
        string carry,m,n,c="";
        cin>>carry>>m>>n;
        int len=max(m.size(),n.size())+1;//要多一个位置来存储进位 
        reverse(carry.begin(),carry.end()) ;
        reverse(m.begin(),m.end());
        reverse(n.begin(),n.end());
        int num=0;
        for(int i=0;i<len;i++)
        { int a=i<m.size()?m[i]-'0':0,b=i<n.size()?n[i]-'0':0,mod=10;
            if(i<carry.size()&&carry[i]-'0'!=0)
            mod=carry[i]-'0';
            c+=(a+b+num)%mod+'0';
            num=(a+b+num)/mod;
        }
    //    cout<<c<<endl;
        while(c.back()=='0'&&c.size()>1) 
        c.pop_back();
        reverse(c.begin(),c.end());
        for(auto i:c)
        cout<<i;
        return 0;
    }

    参考:https://blog.csdn.net/richenyunqi/article/details/79810092

    无聊就学习 反正没事干
  • 相关阅读:
    CCF NOI1062 计算曼哈顿距离
    CCF NOI1061 Wifi密码
    CCF NOI1073 放苹果
    CCF NOI1072 爬楼梯
    CCF NOI1071 Pell数列
    CCF NOI1064 计算斐波那契第n项
    NOI训练行动路线图
    CCF NOI1060 雷同检测
    CCF NOI1059 表达式求值
    CCF NOI1057 石头剪刀布
  • 原文地址:https://www.cnblogs.com/miao-xixixi/p/12710734.html
Copyright © 2011-2022 走看看