• 1047: 小A的计算器


    1047: 小A的计算器

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 124  解决: 105
    [提交][状态][讨论版]

    题目描述

    以往的操作系统内部的数据表示都是二进制方式,小A新写了一个操作系统,系统内部的数据表示为26进制,其中0-25分别由a-z表示。
    现在小A要在这个操作系统上实现一个计算器,这个计算器要能实现26进制数的加法运算。你能帮小A实现这个计算器吗?

    输入

    输入的第一行包括一个整数N(1<=N<=100)。
    接下来的N行每行包括两个26进制数x和y,它们之间用空格隔开,每个数的位数最多为10位,我们可以保证相加的结果的位数最多也是10位。每个数会用小A所设计的操作系统中的表示方法来表示,如:bsadfasdf。即每个数的各个位均由26个小写字母a-z中的一个来表示。

    输出

    输出x和y相加后的结果,结果也要用题目中描述的26进制数来表示。

    样例输入

    4
    ba cd
    c b
    b c
    ba c

    样例输出

    dd
    d
    d
    bc

    提示

     

    来源

    #include <iostream>
    using namespace std;
    int main(){
     int n,i,j,s1,s2,t1,t2,a[100];
     string str1,str2,str="abcdefghijklmnopqrstuvwxyz";
     int k;
     cin>>n;
     for(i=0;i<n;i++){
      cin>>str1>>str2;
      t1=0;
      k=0;
      for(j=0;str1[j]!='';j++){
       t1=t1*26+str1[j]-'a';
      }
      t2=0;
      for(j=0;str2[j]!='';j++){
       t2=t2*26+str2[j]-'a';
      }
      s1=t1+t2;
      while(s1!=0){
       a[k++]=s1%26;
       s1=s1/26;
      }
      for(j=k-1;j>=0;j--){
       cout<<str[a[j]];
      }
      cout<<endl;
     }
     return 0;
    }

  • 相关阅读:
    eclipse中解决git分支合并冲突
    git 放弃本地修改,强制拉取更新
    廖雪峰Git入门教程
    如何实现Proxifier只代理部分程序
    Proxifier代理工具简介和下载
    Navicat Premium 12.0.18安装与激活
    Teamviewer远程控制
    夜神安卓模拟器下载及简介
    Fiddler2如何对Android应用进行抓包
    谷歌浏览器添加JSON-handle插件
  • 原文地址:https://www.cnblogs.com/lchzls/p/5781755.html
Copyright © 2020-2023  润新知