【PTA-训练day4】L2-015 互评成绩 + L1-011 A-B

目录

L2-015 互评成绩 - 简单模拟排序

1、java版 - 超时

 2、c++版

L1-016 查验身份证 - 15

L1-013 计算阶乘和 - 10

L1-011 A-B - 20

1、c++版

2、java版 - 超时


L2-015 互评成绩 - 简单模拟排序

PTA | 程序设计类实验辅助教学平台

1、java版 - 超时

java喜闻乐见的传统节目——运行超时

思路没问题 我觉得打比赛还是用c++吧……

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt(),k=sc.nextInt(),m=sc.nextInt();
        int[] res=new int[n];
        for(int i=0;i<n;i++)
        {
            int maxx=-1,minx=101,sum=0;
            for(int j=0;j<k;j++)
            {
                int x=sc.nextInt();
                maxx=Math.max(maxx,x);
                minx=Math.min(minx,x);
                sum+=x;
            }
            sum=sum-maxx-minx;
            res[i]=sum;
        }
        Arrays.sort(res);
        for(int i=n-m;i<n;i++) 
        {
            if(i!=n-m) System.out.print(" ");
            System.out.printf("%.3f",res[i]*1.0/(k-2));
        }
    }
}

 2、c++版

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,k,m;
    cin>>n>>k>>m;
    int res[n];
    for(int i=0;i<n;i++)
    {
        int maxx=-1,minx=101,sum=0;
        for(int j=0;j<k;j++)
        {
            int x;
            cin>>x;
            maxx=max(maxx,x);
            minx=min(minx,x);
            sum+=x;
        }
        sum-=maxx+minx;
        res[i]=sum;
    }
    sort(res,res+n);
    for(int i=n-m;i<n;i++)
    {
        if(i!=n-m) cout<<" ";
        printf("%.3f",res[i]*1.0/(k-2));
    }
}

L1-016 查验身份证 - 15

PTA | 程序设计类实验辅助教学平台

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int[] w={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};
        char[] ck={'1','0','X','9','8','7','6','5','4','3','2'};
        int n=sc.nextInt();
        int cnt=0;
        while(n-->0)
        {
            String s=sc.next();
            int sum=0;
            for(int i=0;i<17;i++) sum+=w[i]*(s.charAt(i)-'0');
            char t=ck[sum%=11];
            if(t==s.charAt(17)) continue;
            cnt++;
            System.out.println(s);
        }
        if(cnt==0) System.out.print("All passed");
    }
}

L1-013 计算阶乘和 - 10

PTA | 程序设计类实验辅助教学平台

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int sum=0;
        for(int i=1;i<=n;i++)
        {
            int t=1;
            for(int j=1;j<=i;j++)
                t*=j;
            sum+=t;
        }
        System.out.print(sum);
    }
}

 

L1-011 A-B - 20

PTA | 程序设计类实验辅助教学平台

1、c++版

  • cin        //遇到空白(包括回车、空格等)结束输入
  • getline(cin,str)     //可以输入一行,能接收空格
#include <bits/stdc++.h>
using namespace std;

int main()
{
    string s,str;
    getline(cin,s);
    getline(cin,str);
    set<char>st;
    for(auto x:str) st.insert(x);
    for(auto x:s)
    {
        if(st.count(x)) continue;
        cout<<x;
    }
}

2、java版 - 超时

这题喜闻乐见的用Java超时 无语

import java.util.*;

public class Main
{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        String str=sc.nextLine();
        Set<Character> st=new HashSet<>();
        for(int i=0;i<str.length();i++) st.add(str.charAt(i));
        for(int i=0;i<s.length();i++)
        {
            if(st.contains(s.charAt(i))) continue;
            System.out.print(s.charAt(i));
        }
    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值