2014届华为成都校园招聘机试题

时间:2022-05-10 18:50:20

转载请注明:http://blog.csdn.net/ydm2011/article/details/11683325

本文试题权利华为公司所有,若侵犯权利,请通知,本人立即删除!


1. 输入正整数,把其中的‘0’~‘9’转换为a~j;(不用检测异常输入,保证输入无异常)

例如:输入:123

输出:bcd

2.假设n人,编号为:1,2,3,。。。n;循环报数,每次报数为m的出列,求最后出列的人的编号;异常返回-1;

例如,输入:10,10

输出:8

3;球输入表达式的值,*和/的优先级大于+和-;

例如,输入:2+3-5*13;

输出:-60



本人作对了两题,第三题提交了,但是答案错误,没有得到分,这是因为时间太紧,没有时间来得及调试!

第一题:

#include<iostream>

#include<string>

using namespace std;

int main()

{

       string str;

      cin>>str;

      char* p = new char[str.size()+1];

      for(int i=0;i<str.size();i++)

      {

               p[i] = str[i]-'0' + 'a';

      }           

      p[str.size()] = '\0';

      cout<<p<<endl;

    delete[] p;

}

第二题:

#include<cstdio>
int main()
{
       int n,m;
       scanf("%d,%d",&n,&m);
      if(n<=0||m<=0)
     {
          return -1;
     }
     int last=1;
    for(int i=2;i<=n;i++)
    {
         last = (last+m)%i;
         if(last==0)
         last=i;
     }
     printf("%d",last);
     return 0;
}