PAT (Basic Level) Practice (中文)1012 数字分类 (20 分)+易错测试点

简介: PAT (Basic Level) Practice (中文)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 的待分类的正整数。数字间以空格分隔。


输出格式:


对给定的 N 个正整数,按题目要求计算 A1~A5 并在一行中顺序输出。数字间以空格分隔,但行末不得有多余空格。

若其中某一类数字不存在,则在相应位置输出 N。


输入样例 1:


13 1 2 3 4 5 6 7 8 9 10 20 16 18

结尾无空行


输出样例 1:


30 11 2 9.7 9

结尾无空行


输入样例 2:


8 1 2 4 5 6 7 9 16

结尾无空行


输出样例 2:


N 11 2 N 9

结尾无空行


分析:


将一组数据存放到数组中,遍历数组,设变量a1,a2,a3,a4,a5;用if语句进行分类


个人代码:

#include<bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int t;
  int a[2000];
  scanf("%d",&t);
  for(int i=1;i<=t;i++)
  {
    scanf("%d",&a[i]);
  }
  int a1=0,a2=0,a3=0,a4=0,a5=0;
  int flag=1;
  int b=0;
  for(int i=1;i<=t;i++)
  {
    if(a[i]%5==0)
    {
      if(a[i]%2==0)
      {
        a1+=a[i]; 
      }
    }
    if(a[i]%5==1)
    {
      if(flag%2==1)
      {
        a2+=a[i];
      }else if(flag%2==0){
        a2-=a[i];
      }
      flag++;
    }
    if(a[i]%5==2)
    {
      a3++;
    }
    if(a[i]%5==3)
    {
      a4+=a[i];
      b++;
    }
    if(a[i]%5==4)
    {
      if(a[i]>a5)
      {
        a5=a[i];
      }
    } 
  }
  double a44=0;
  if(b!=0)
  {
    a44=(double)a4/b;
  }
  if(a1==0)
  {
    printf("N ");
  }else {
    printf("%d ",a1);
  }
  if(flag==1)
  {
    printf("N ");
  }else {
    printf("%d ",a2);
  }if(a3==0)
  {
    printf("N ");
  }else {
    printf("%d ",a3);
  }if(b==0)
  {
    printf("N ");
  }else {
    printf("%.1lf ",a44);
  }
  if(a5==0){
    printf("N");
  } else {
    printf("%#d",a5);
  }
}

注意:

1. A2可以存在和为0 的情况;(最初没有AC的原因)

2. 输入的第一行第一个数据是测试的数目,不是测试的数据,要注意(手写分类时出现错误

微信图片_20220927123217.png


相关文章
|
1月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
95 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
4月前
|
Devops jenkins 测试技术
如何在Visual Basic项目中实施单元测试以确保代码健壮性
【7月更文挑战第2天】本文探讨了如何在Visual Basic项目中实施单元测试以确保代码健壮性。单元测试基础包括验证代码单元的功能,促进重构和提高代码质量。MSTest、NUnit和xUnit是VB.NET的单元测试工具。遵循TDD原则,保持测试独立,关注单一功能,并确保快速执行。示例展示了如何为`Calculator`类的加法方法编写MSTest。持续集成与自动化测试工具如Jenkins和Azure DevOps辅助测试运行和代码质量检查。单元测试是提升软件质量和开发效率的关键实践,反映了良好的开发文化。
53 2
|
5月前
|
安全 测试技术
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
软件测试项目式学习二(认识软件测试及软件测试分类与案例分析)
85 1
|
5月前
|
SQL XML 安全
【软件测试】 测试分类
【软件测试】 测试分类
|
6月前
|
SQL 安全 测试技术
软件测试:测试分类
软件测试:测试分类
|
测试技术 程序员
测试技术分类
测试技术会从7个方面对测试过程进行指导。
154 0
|
Web App开发 SQL 存储
【软件测试】测试分类
按照测试对象划分,一共可以分为10种
|
SQL 存储 数据采集
软件测试之测试的分类(重点:黑盒测试、白盒测试、单元测试、集成测试、系统测试)
1. 按照测试对象进行划分 1)界面测试 2)可靠性测试 3)容错性测试 4)文档测试 5)兼容性测试 6)易用性测试 7)软件安装卸载的测试 8)安全测试 9)性能测试 10)内存泄漏测试 2. 按照是否查看代码划分 1)黑盒测试 2)白盒测试 3)灰盒测试 3. 按照开发阶段划分 1)单元测试(结合 V 模型) 2)集成测试 3)系统测试 4)验收测试 5)将上面四种测试方法同 V 模型的阶段进行对应 4. 按照测试实施组织划分 1)α 测试 2)β 测试 3)第三方测试 5. 按照是否运行进行划分 1)静态测试 2)动态测试 6. 按照是否手工划分 1)手工测试 2)自动化测试
1118 0
|
机器学习/深度学习 人工智能 自然语言处理
【产品进化论】支持100+种单证分类:开放免费测试
依托深源恒际自研的技术结合多重规则引擎,为健康险理赔流程提供集收单、初审、录入、扣费、理算、审核于一体的全流程自动化解决方案,助推理赔业务构建结构化数据,同时可结合医疗票据业务数据自动化无感地进行模型迭代训练,自动部署,形成优质的数据闭环和数据生态。
【产品进化论】支持100+种单证分类:开放免费测试
|
算法 测试技术
测试开发——测试分类
测试开发——测试分类
230 0
下一篇
无影云桌面