北航计算机2016年考研机试题

第一题

给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。 输入一个数n(0 < n<1000000000),已知输入开头不包含多余的0。 输出结果:如果m是n的k倍(k为整数),那么输出n*k=m。 如果m不是n的整数倍,那么输出n和n的逆序数。…

样例输入 :
1234
1089
23200
样例输出 :
1234 4321
1089*9=9801
23200 00232

#include
using namespace std;
int main()
{
    string s,p;
    cin>>s;
    int len=s.size();
    int n=0,m=0;
    for(int i=0;i<len;i++){
        n=n*10+(s[i]-'0');
    }
    p=s;
    reverse(p.begin(),p.end());
    for(int i=0;i<len;i++){
        m=m*10+(p[i]-'0');
    }
    if(m%n==0){
        int k=m/n;
        cout<<s<<"*"<<k<<"="<<p<<endl;
    }else{
        cout<<s<<" "<<p<<endl;
    }
    return 0;
}

第二题

给一个c语言的enum定义语句,输出enum中规定的各项值。 输入一个c语言的enum定义语句,输出enum中规定的各项值。

样例输入 :
enum date{JAN=1,FEB,MAR,APR,MON=1,TUE,SUN,found=1949};
样例输出 :
JAN 1
FEB 2
MAR 3
APR 4
MON 1
TUE 2
SUN 3
found 1949

注:该程序不能处理变量和等号赋值间有空格的情况。

#include
using namespace std;
struct node{
    string name;
    int id;
};
vector<node>v;
int flag=0;
bool judge(char c){
    return c=='}'||c==' '||c==','||c==';'||c=='{';
}
node fun(string s){
    node tmp;
    int i=s.find('=');
    if(i==-1){
        tmp.name=s;
        tmp.id=flag;
        flag++;
    }else{
        string f=s.substr(0,i);
        tmp.name=f;
        string last=s.substr(i+1);
        int cnt=0;
        for(int j=0;j<(int)last.size();j++){
            cnt=cnt*10+(last[j]-'0');
        }///写程序时写成了last[i]导致结果错误
        tmp.id=cnt;
        flag=cnt+1;
    }
    return tmp;
}
int main()
{
    string str;
    getline(cin,str);
    int left=str.find('{');
    int right=str.find('}');
    string tmp="";
    for(int i=left+1;i<=right;i++){
        if(!judge(str[i])){
            tmp+=str[i];
            if(i==right){
                node t=fun(tmp);
                v.push_back(t);
            }
        }else if(tmp!=""){
            node t=fun(tmp);
            v.push_back(t);
            tmp="";
            while(judge(str[i])) i++;
            i--;
        }
    }
    for(int i=0;i<(int)v.size();i++){
        cout<<v[i].name<<" "<<v[i].id<<endl;
    }
    return 0;
}

你可能感兴趣的:(北航考研机试)