ECNU 软工机试2019

A. 约瑟夫问题

队列模拟。

代码:

#include <iostream>
#include <queue>

using namespace std;

int main() {
    int l;
    cin>>l;
    while(l--){
        int n,m,k;
        cin>>n>>m>>k;
        queue<int> q;
        for(int j=1;j<=n;j++)
            q.push(j);

        while(k--){
            int count=1;
            while(count!=m){
                int t=q.front();
                q.pop();
                q.push(t);
                count++;
            }
            int t=q.front();
            q.pop();
            if(k==0) cout<<t<<endl;
        }
    }  
}

B. 合法变量

#include <iostream>
using namespace std;

bool IsDig(char c){
    if(c>='0' && c<='9') return true;
    else return false;
}

bool IsXiahuaxian(char c){
    if(c=='_') return true;
    else return false;
}

bool IsLetter(char c){
    if((c>='a' && c<='z')||(c>='A' && c<='Z')) return true;
    else return false;
}

bool IsHefa(string str){
    if(IsLetter(str[0])==0 && IsXiahuaxian(str[0])==0)
        return false;
    for(int i=1;i<str.size();i++)
        if(IsDig(str[i])==0 && IsXiahuaxian(str[i])==0 && IsLetter(str[i])==0)
            return false;
    return true;
}

int main() {
    string str;
    getline(cin,str);
    if(IsHefa(str)==1) cout<<"yes";
    else cout<<"no";

}

C. 晚饭吃什么

大整数运算。

代码:

#include <iostream>
#include <vector>
using namespace std;

vector<int> ToBigInt(string str){
    vector<int> num;
    for(int i=str.size()-1;i>=0;i--)
        num.push_back(str[i]-'0');
    return num;
}

int compare(vector<int> a,vector<int> b){
    if(a.size()>b.size()) return 1;
    else if(a.size()<b.size()) return -1;
    else{
        for(int i=a.size()-1;i>=0;i--){
            if(a[i]>b[i]) return 1;
            else if(a[i]<b[i]) return -1;
        }
        return 0;
    }
}

vector<int> sub(vector<int> a,vector<int> b){
    vector<int> c;

    if(a.size()>b.size()) b.insert(b.end(),a.size()-b.size(),0);
    if(a.size()<b.size()) a.insert(a.end(),b.size()-a.size(),0);

    int carry=0;
    for(int i=0;i<a.size();i++){
        c.push_back((a[i]+10-b[i]-carry)%10);
        if(a[i]>=b[i]+carry) carry=0;
        else carry=1;
    }

    for(int i=c.size()-1;c[i]==0;i--)
        c.pop_back();

    return c;
}

int main() {
    int k;
    cin>>k;
    while(k--){
        string str1,str2;
        cin>>str1>>str2;

        vector<int> a= ToBigInt(str1),b= ToBigInt(str2);
        while(compare(a,b)==1){
            a=sub(a,b);
        }
        for(int i=a.size()-1;i>=0;i--)
            cout<<a[i];
        cout<<endl;
    }
}

D. 津津的数字压缩法

代码:

#include <iostream>
#include <vector>
using namespace std;

vector<int> ToDig(string str){
    vector<int> res;
    for(int i=0;i<str.size();i++)
        res.push_back(str[i]-'0');
    res.push_back(-1);
    return res;
}

vector<int> Change(vector<int> a){
    vector<int> b;
    int count=1;
    for(int i=0;i<a.size()-1;i++){
        if(a[i]!=a[i+1]){
            b.push_back(count);
            b.push_back(a[i]);
            count=1;
        }
        else{
            count++;
        }
    }
    return b;
}

int main(){
    string str;
    cin>>str;
    vector<int> a= ToDig(str);
    vector<int> b= Change(a);

    for(int i=0;i<b.size();i++)
        cout<<b[i];

}

E. 财务危机

这题不会。

F. 超越方程

求导+二分法的思想,不知道能不能AC。

代码:

#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
double k,m,p,a,b;

double f_(double x){
    return k*p* pow(x,p-1)- pow(m,x)* log(m);
}

/*double f(double x){
    return k* pow(x,p)- pow(m,x);
}*/

int main(){
    int l;
    cin>>l;
    while(l--){
        scanf("%lf",&k);
        scanf("%lf",&m);
        scanf("%lf",&p);
        scanf("%lf",&a);
        scanf("%lf",&b);
        double mid;
        for(int i=0;i<10000;i++){
            mid=(a+b)/2;
            if(f_(mid)==0) break;
            else if(f_(a)*f_(mid)<0) b=mid;
            else a=mid;
        }
        printf("%.8f\n",mid);
    }
}

G. 找数

这题也不会。

注:

本文部分内容来自:https://malic.xyz/archives/128

全部评论

相关推荐

2024-12-30 22:31
吉首大学 Web前端
工字钢写代码:改成吉林就OK了
点赞 评论 收藏
分享
暮雨轻歌:看起来hr不能接受我菜查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务