zoukankan      html  css  js  c++  java
  • 洛谷 P1952 火星上的加法运算_NOI导刊2009提高(3)

    题目描述

    最近欢欢看到一本有关火星的书籍,其中她被一个加法运算所困惑,由于她的运算水平有限.她想向你求助,作为一位优秀的程序员,你当然不会拒绝。

    输入输出格式

    输入格式:

     

    第一行先愉入一个运算的进制N(2<=N<=36),接下来两行为需要进行运算的字符,其中每个字符串的长度不超过200位,其为N进制的数。其中包括0-9及a-z(代表10-35)。

     

    输出格式:

     

    在N进制下它们的和

     

    输入输出样例

    输入样例#1: 复制
    20
    1234567890
    abcdefghij
    
    输出样例#1: 复制
    bdfi02467j
    思路:模拟。
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,ans[3010];
    char s1[2010],s2[2010];
    int main(){
        scanf("%d",&n);
        scanf("%s",s1);
        scanf("%s",s2);
        int len1=strlen(s1);
        int len2=strlen(s2);
        for(int i=0;i<=(len1-1)/2;i++)
            swap(s1[i],s1[len1-i-1]); 
        for(int i=0;i<=(len2-1)/2;i++)
            swap(s2[i],s2[len2-i-1]);
        int len=max(len1,len2);
        for(int i=0;i<len1;i++)
            if(s1[i]>='0'&&s1[i]<='9')    ans[i]+=s1[i]-'0';
            else ans[i]+=s1[i]-'a'+10;
        for(int i=0;i<len2;i++)
            if(s2[i]>='0'&&s2[i]<='9')    ans[i]+=s2[i]-'0';
            else ans[i]+=s2[i]-'a'+10;
        for(int i=0;i<len;i++)
            if(ans[i]>=n){
                ans[i+1]+=ans[i]/n;
                ans[i]=ans[i]%n;
                if(i==len-1)    len++;
            }
        for(int i=len-1;i>=0;i--)
            if(ans[i]>=0&&ans[i]<=9)    cout<<ans[i];
            else cout<<char(ans[i]-10+'a');
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    svn上传文件钩子
    linux服务器版svn安装
    csp-s模拟55
    csp-s模拟54
    csp-s模拟53
    csp-s模拟52
    csp-s模拟51
    csp-s模拟50
    csp-s模拟49
    csp-s模拟48
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8044674.html
Copyright © 2011-2022 走看看