PAT 乙级 1012

  最后一个测试点怎么也过不了,问题在于A2的判断,不能单纯地以0作为判断条件;假设满足A2条件的只有两个数6和6,计算结果仍然是0,但是输出A2的值是0不是‘N‘,因此需要给A2加一个计数变量作为判断条件

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

int main() {
    vector<int> num;
    int n = 0;
    cin >> n;
    while (n--) {
        int tmp = 0;
        cin >> tmp;
        num.push_back(tmp);
    }
    int A1 = 0;
    int A2 = 0;
    int A3 = 0;
    float A4 = 0;
    int A5 = 0;
    int A2_cnt = 0;
    bool flag = true;
    int cnt = 0;
    int maxx = 0;
    for (int i = 0; i < num.size(); i++) {
        if (num[i] % 5 == 0 && num[i] % 2 == 0)
            A1 += num[i];
        else if (num[i] % 5 == 1) {
            A2_cnt++;
            if (flag) {
                A2 += num[i];
                flag = false;
            }
            else {
                A2 -= num[i];
                flag = true;
            }
        }
        else if (num[i] % 5 == 2)
            A3++;
        else if (num[i] % 5 == 3) {
            A4 += num[i];
            cnt++;
        }
        else if (num[i] % 5 == 4) {
            if (num[i] > maxx)
                maxx = num[i];
        }
    }
    if (A4 != 0)
        A4 /= cnt;
    A5 = maxx;
    if (A1 == 0)
        cout << "N ";
    else
        cout << A1 << ‘ ‘;
    if (A2_cnt == 0)
        cout << "N ";
    else
        cout << A2 << ‘ ‘;
    if (A3 == 0)
        cout << "N ";
    else
        cout << A3 << ‘ ‘;
    if (A4 == 0)
        cout << "N ";
    else
        printf("%.1f ", A4);
    if (A5 == 0)
        cout << "N";
    else
        cout << A5 << endl;

    return 0;
}

原文地址:https://www.cnblogs.com/moujun1001/p/9350996.html

时间: 2024-10-30 21:40:45

PAT 乙级 1012的相关文章

PAT乙级 1012. 数字分类 (20)

1012. 数字分类 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数

C++&#183;PAT乙级1012.数字分类 (20/20)

/* 1012. 数字分类 (20) 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数字. 输入格式: 每个输入包含1个测试用例.每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的

PAT——乙级1012

1012 数字分类 (20 point(s)) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A?1?? = 能被 5 整除的数字中所有偶数的和: A?2?? = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n?1???n?2??+n?3???n?4???: A?3?? = 被 5 除后余 2 的数字的个数: A?4?? = 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位: A?5?? = 被 5 除后余 4 的数字中最大数字. 输入格式: 每个

PAT乙级1012

1012 数字分类 (20分) 题目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: \(A_1\) = 能被 5 整除的数字中所有偶数的和: \(A_2\) = 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 \(4 n_1?n_2+n_3?n_4?\): \(A_3\) = 被 5 除后余 2 的数字的

PAT乙级.1012.数字分类

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数字. 输入格式: 每个输入包含1个测试用例.每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数.数字间以空格分隔. 输出格式:

PAT 乙级真题 1012.D进制的A+B

PAT 乙级真题 1012.D进制的A+B 题目描述 输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数. 输入格式 输入在一行中依次给出3个整数A.B和D. 输出格式 输出A+B的D进制数. 输入样例 123 456 8 输出样例 1103 题目思路 #include<bits/stdc++.h> #define ll long long int using namespace std; int main() { ll a,b

1054. 求平均值 (20)-PAT乙级真题

今天刚刚到学校,2017年学习正式开始了,今天看到了浙大的<数据结构>这学期又要开课了,决定一定要跟着学习一遍:在大学生mooc网上学习:http://www.icourse163.org/course/zju-93001#/info :然后就是跟着<算法之美>也要同步看完. 然后就在PAT上随便做一道题,这是第一次通过AC,发现了两个比较好的博客主页:http://www.liuchuo.net/  和  https://www.joyhwong.com/   都总结了刷题的过程

PAT乙级1034. 有理数四则运算(20)

本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0. 输出格式: 分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和.差.积.商.注意输出的每个有理数必须是该有理数的最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分:若为负数,则须加括号:若除法分母为0,则输出“Inf”.题目保证正确的输出中没

PAT乙级1006题python3代码

PAT乙级1006题python3代码 目录 PAT乙级1006题python3代码 目录 代码 题目: 让我们用字母B来表示"百".字母S表示"十",用"12-n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出