D19 C++PAT乙级

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

img

计算谱半径

img


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

int main()
{
    int n;
    cin>>n;
    double p=0;
    while(n--)
    {
        int a,b;
        cin>>a>>b;
        double t=sqrt(a*a+b*b);  //计算复数模 
        p=max(p,t);  //取最大值 
    }
    printf("%.2lf\n",p);  //保留两位小数 
    return 0;
}

朋友数

img


#include<bits/stdc++.h>
using namespace std;
set<int> s;
int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        string data;
        cin>>data;
        int num=0;   
        for(int i=0;i<data.size();i++){
            num+=data[i]-'0';  //计算各位数之和 
        }
        s.insert(num);  //将num插入集合,即朋友数 
    }
    cout<<s.size()<<endl;  //输出朋友数的个数 
    for(auto p=s.begin();p!=s.end();p++){
        if(p!=s.begin())   cout<<" ";  //输出朋友数 
        cout<<*p;      
    }
}

单身狗

img


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

int main()
{
    int n;
    cin>>n;
    vector<int> couple(100001,-1);
    for(int i=0;i<n;i++)
    {
        int a,b;
        cin>>a>>b;
        couple[a]=b;
        couple[b]=a;  //绑定情侣id 
    }
    int m;
    cin>>m;
    int a[m],list[100001]={0};
    set<int>dog;
    for(int i=0;i<m;i++)
    {
        cin>>a[i];  //出席者id 
        if(couple[a[i]]!=-1) list[couple[a[i]]]=1;  //出席且有对象,list登记对象id 
    }
    for(int i=0;i<m;i++)
    {
        if(!list[a[i]]) dog.insert(a[i]);  //没对象的 
    }
    cout<<dog.size()<<endl;
    for(auto p=dog.begin();p!=dog.end();p++)
    {
        if(p==dog.begin()) printf("%05d",*p);
        else printf(" %05d",*p);
    }
    return 0;
}

图像过滤

img

#include <iostream>
using namespace std;

int main()
{
    int m,n,a,b,x,num[501][501];
    cin>>m>>n>>a>>b>>x;
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            cin>>num[i][j];
            if(num[i][j]>=a&&num[i][j]<=b)
            {
                num[i][j]=x;  //范围内的数都替换 
            }
        }
    }
    for(int i=0;i<m;i++)
    {
        for(int j=0;j<n;j++)
        {
            if(j>0) cout<<" ";
            printf("%03d",num[i][j]);
        }
        cout<<endl;
    }
    return 0;
}


试密码

img



#include <stdio.h>
#include <string.h>
int main() {
    char p[22]={0},str[50]={0};
    int n,a=0;
    scanf("%s %d%*c",p,&n);  //吸收回车
    p[strlen(p)] ='\n';    //把正确密码最后的'\0'改为'\n',便于和得到的输入密码比较
    while (fgets(str,50,stdin) && strcmp(str,"#\n")!=0)
    {
        if(strcmp(str,p)!=0)
        {
            printf("Wrong password: %s",str);    //str最后一个字符是'\n',不用再手动换行
            if (++a==n)
            {
                printf("Account locked");
                break;
            }
        }
        else
        {
            printf("Welcome in");
            break;
        }
    }
    return 0;
}

微博转发抽奖

img

#include<iostream>
#include<cstdio>
#include<string.h>
#include<string>
using namespace std;
string asd[10001];  //判断是否已经中奖 
bool al(char id[]){
        for(int i=0;i<10001;i++)
        {
            if(id==asd[i]) return true;
        } 
        return false;
}

int main(){
    int a,b,c;  //总量,中奖间隔,第一位中奖者的序号 
    cin>>a>>b>>c; 
    int flag=0;  //判断是不是已经有中奖的 
    for(int i=1;i<=a;i++)
    {
        char id[21];
        scanf("%s",&id);
        if(i==c)
        {
            if(al(id)==false)
            {
                cout<<id<<endl;
                asd[i]=id;
                flag=1;
                c=c+b;
            }
            else 
            {
                c++;
            }
        }
                
    } 
    if(flag==0) cout<<"Keep going..."; 
}

结绳

img


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

int main()
{
    int n;
    cin>>n;
    double a[10000];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];  //各段绳长 
    }
    sort(a,a+n);  //排序 
    for(int i=1;i<n;i++)
    {
        double b=a[i-1]/2;  //前一根绳子折后 
        double c=a[i]/2;  //后一根绳子折后 
        a[i]=(b+c);  //串连后 
    }
    cout<<(int)a[n-1];
    return 0;
}



...全文

相关推荐

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

PAT (Basic Level) 1015 德才论

题意 给定考生考号、德分和才分,分成四类。每类里面再进行排序。 思路 模拟即可。注意排序条件。 代码 #include using namespace std; struct stu { int id, d, c; stu() {} stu(int _id, int _d, int _c) : id(_id), d(_d), c(_c) {} }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int n, l, h; cin >> n >> l >> h; vec

weixin_38658405

pat顶级和leetcode-PAT-Leetcode:PAT-Leetcode

拍拍和leetcode 介绍 该存储库存储算法实践的代码,如 PAT / leetcode 或其他平台。 拍 PAT(Programming algorithm test)是浙江大学创建的一个测试。 它包含三个级别:基本/高级/顶级。 这个存储库主要包括高级级别。 通常,我会在代码头中记录我在每个算法问题中消耗的日期和时间。 它有助于提高我的效率。

weixin_38564990

PAT真题解析

PAT考试的题解,是几位ACM大神精心编写的,我感觉很不错,和大家分享下~

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