D20 C++PAT乙级

一根炸薯条 一根炸薯条 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

小赌怡情

img


#include <iostream>
using namespace std;

int main(){
    int T,K;
    int n1,b,t,n2;
    cin>>T>>K;
    while(K--){
        cin>>n1>>b>>t>>n2;
        if (t>T) 
        {
            printf("Not enough tokens.  Total = %d.\n",T);
            continue;
        }
        if(n2>n1&&b==1)
        {
            T+=t;
            printf("Win %d!  Total = %d.\n",t,T);
        }
        else if(n2<n1&&b==0)
        {
            T+=t;
            printf("Win %d!  Total = %d.\n",t,T);
        }
        else
        {
            T-=t;
            printf("Lose %d.  Total = %d.\n",t,T);
        }
        if (T<=0)
        {
            cout << "Game Over." << endl;
            break;
        }
    }
    return 0;
}


开学寄语

img


#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
  int n,m;  //学生人数,物品种类数 
  cin>>n>>m;
  vector<int> vec;
  for(int i=0;i<m;i++)
  {
    int id;  //物品种类 
    cin>>id;
    vec.push_back(id);
  }
  int tn=0;  //被查缴物品总数 
  int pn=0;  //有问题学生总数 
  for(int i=0;i<n;i++)
  {
    string name;  //学生姓名 
    cin>>name;
    int num;  //单个学生物品数 
    cin>>num;
    int cnt=0;
    for(int j=0;j<num;j++)
    {
      int id;  //单个学生物品 
      cin>>id;
      if(find(vec.begin(),vec.end(),id)!=vec.end())
      {
        if(cnt==0)
        {
          cout<<name<<":";
          printf(" %04d",id);
          cnt++;
          tn++;
          pn++;
        }
        else
        {
          printf(" %04d",id);
          tn++;
        }
      }
    }
    if(cnt!=0)
      cout<<endl;
  }
  cout<<pn<<" "<<tn<<endl;
  return 0;
}

WiFi密码

img


#include <iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<4;j++)
        {
            string s;
            cin>>s;
            if(s[2]=='T') cout<<s[0]-'A'+1;
        }
    }
    return 0;
}

字符串压缩与解压

img


#include <iostream>
using namespace std;
int main() {
    char cd;
    cin>>cd;
    getchar();
    string s,num;
    getline(cin,s);
    int cnt=1;
    if (cd=='D') {
        for (int i=0;i<s.length();i++)
        {
            if (s[i]>='0'&&s[i]<='9')
            {
                num+=s[i];
            }
            else
            {
                if (num.length()>0) cnt=stoi(num);
                while(cnt--) cout<<s[i];
                cnt=1;
                num="";
            }
        }
    } 
    else if(s.length()!=0)
    {
        char a=s[0];
        for (int i=1;i<s.length();i++)
        {
            if (s[i]==a) 
            {
                cnt++;
            } 
            else 
            {
                if (cnt>=2) cout<<cnt;
                cout<<a;
                cnt=1;
                a=s[i];
            }
        }
        if (cnt>=2) cout<<cnt;
        cout<<a;
    }
    return 0;
}

延迟的回文数

img


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

string asd(string a) {
    string b=a,qwe;
    reverse(b.begin(),b.end());
    int len=a.length(),c=0;
    for (int i=0;i<len;i++)
    {
        int num=(a[i]-'0'+b[i]-'0')+c;
        c=0;
        if (num>=10)
        {
            c=1;
            num-=10;
        }
        qwe+=char(num+'0');
    }
    if(c==1) qwe+='1';
    reverse(qwe.begin(),qwe.end());
    return qwe;
}
int main() {
    string s;
    cin>>s;
    int d=0;
    while (d<10)
    {
        string t=s;
        reverse(t.begin(),t.end());
        if (t==s)
        {
            cout<<s<<" is a palindromic number.";
            break;
        } 
        else 
        {
            cout<<s<<" + "<<t<<" = "<<asd(s)<<endl;
            s=asd(s);
            d++;
        }
    }
    if (d==10) cout<< "Not found in 10 iterations.";
    return 0;
}

检查密码

img

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

int main()
{
    int n;
    cin>>n;
    getchar();
    for(int i=0;i<n;i++)
    {
        string s;
        getline(cin,s);
        if(s.length()>=6)
        {
            int a=0,b=0,c=0;
            for(int j=0;j<s.length();j++)
            {
                if(s[j]!='.' && !isalnum(s[j])) a=1;
                else if(isalpha(s[j])) b=1;
                else if(isdigit(s[j])) c=1;
            }
            if(a==1) cout<<"Your password is tai luan le."<<endl;
            else if(b==0) cout<<"Your password needs zi mu."<<endl;
            else if(c==0) cout<<"Your password needs shu zi."<<endl;
            else cout<<"Your password is wan mei."<<endl;
        }
        else cout<<"Your password is tai duan le."<<endl;
    } 
    return 0;
}


射击比赛

img


#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
typedef struct{
    int id;
    int len;
}stuInfo;
bool cmp(stuInfo a,stuInfo b)
{
    return a.len<b.len;
}
int main()
{
    int n;
    cin>>n;
    vector<stuInfo> v(n);
    int id,x,y;
    for(int i=0;i<n;i++)
    {
        cin>>id>>x>>y;
        v[i].id=id;
        v[i].len=x*x+y*y;
    }
    sort(v.begin(),v.end(),cmp);
    printf("%04d %04d\n",v[0].id,v[v.size()-1].id);
    return 0;
}

是否存在相等的差

img


#include <iostream>
#include <algorithm>
using namespace std;
bool cmp(int a,int b)
{
    return a>b;
}
int main()
{
    int n,num,time=0;
    cin>>n;
    int asd[n+1];
    for(int i=0;i<n;i++)
    {
        cin>>num;
        if(num>i) asd[i]=num-i-1;
        else asd[i]=i+1-num;
    }
    sort(asd,asd+n,cmp);
    for(int i=0;i<n;i++)
    {
        time++;
        if(asd[i+1]!=asd[i])
        {
            if(time>1) cout<<asd[i]<<" "<<time<<endl;
            time=0;
        }
    }
}

就不告诉你

img


#include <stdio.h>
#include <iostream> 
using namespace std;

int main()
{
    int a,b,s[100];
    cin>>a>>b;
    int c=a*b;
    int k=0,flag=0;
    while(c>0)
    {
        s[++k]=c%10;
        c=c/10;
    }
    for(int i=1;i<=k;i++)
    {
        if(s[i]||flag)
        {
            cout<<s[i];
            flag=1;
        } 
    }
    return 0;
}

有多少不同的值

img


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

int main()
{
    int n;
    cin>>n;
    set<int> s;
    for(int i=1;i<=n;i++) s.insert(i/2+i/3+i/5);
    cout<<s.size();
    return 0;
}

2.12咯,目前PAT只刷到1087(中间还空了几个不会写的),后面再接着刷吧

...全文

相关推荐

PAT乙级1022 D进制的A+B

PAT乙级1022源代码 codeblocks 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。

代码拖拉鸡

PAT乙级 1052 卖个萌

题目: 输入样例: [╮][╭][o][~\][/~] [] [╯][╰][^][-][=][>][&lt;][@][⊙] [Д][▽][_][ε][^] ... 4 1 1 2 2 2 6 8 1 5 5 3 3 4 3 3 2 10 3 9 3 输出样例: ╮(╯▽╰)╭ &lt;(@Д=)/~ o(^ε^)o Are you kidding me? @\/@ Python 先用正则匹配到各部位表情,然后尝试输出完整表情,出现异常就是数组下标越界了,此时输出Are you kidding me? @\/@ import re pat = re.compile(r'\[(.+?)\]') h

weixin_38646659

政府科技管理者在推动科技成果转化过程中,如何精准识别重点产业的共性技术需求?.docx

政府科技管理者在推动科技成果转化过程中,如何精准识别重点产业的共性技术需求?

BIZKEEN

高校技术转移办公室人员如何高效管理并推广本校科技成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

产业园区如何精准对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN
评论
收藏 已收藏
分享
返回顶部