首页 > 编程语言 >1012 数字分类(C++)

1012 数字分类(C++)

时间:2023-05-16 21:48:01浏览次数:44  
标签:除后 输出 正整数 数字 int 分类 样例 C++ 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 的待分类的正整数。数字间以空格分隔。

输出格式:

对给定的 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

二、代码实现:

#include <iostream>
using namespace std;
int main()
{
    int a1=0,a2=0,a3=0,a5=0;
    int flag[5]={0};
    double a4=0;
    int b[1001]={0};
    int n;
    int count=0;
    int fuhao=1;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>b[i];
    }
    for(int i=0;i<n;i++)
    {
        if((b[i]%5==0)&&(b[i]%2==0))
        {
            a1+=b[i];
            flag[0]=1;
        }
        if(b[i]%5==1)
        {
            a2+=fuhao*b[i];
            fuhao*=-1;
            flag[1]=1;
        }
        if((b[i]%5)==2)
        {
            a3++;
            flag[2]=1;
        }
        if(b[i]%5==3)
        {
            a4+=b[i];
            count++;
            flag[3]=1;
        }
        if(b[i]%5==4)
        {
            if(b[i]>a5)
            {
                a5=b[i];
                flag[4]=1;
            }
        }
    }
    if(flag[0]==0)
    {
        cout<<"N"<<" ";
    }
    else
    {
        cout<<a1<<" ";
    }
    if(flag[1]==0)
    {
        cout<<"N"<<" ";
    }
    else
    {
        cout<<a2<<" ";
    }
    if(flag[2]==0)
    {
        cout<<"N"<<" ";
    }
    else
    {
        cout<<a3<<" ";
    }
    if(flag[3]==0)
    {
        cout<<"N"<<" ";
    }
    else
    {
        printf("%.1lf ",a4/count);
    }
    if(flag[4]==0)
    {
        cout<<"N";
    }
    else
    {
        cout<<a5;
    }
    return 0;
}

  

标签:除后,输出,正整数,数字,int,分类,样例,C++,1012
From: https://www.cnblogs.com/tljx-cen/p/17406893.html

相关文章

  • C++学习简记Ⅱ
    二C++数组Array可以在堆(heap)上创建一个数组int*another=newint[5];//其作用域与在栈上创建不同,直到程序把它销毁之前,它都是处于活动状态的,需要用delete关键字来删除delete[]another;使用new动态分配最大的原因是生存期,用new来分配的内存,它将一直存在,直到手动删......
  • C++学习简记Ⅰ
    一指针内容在C中已经熟悉指针本身为一个代表地址的整数指针的*运算符通常被称为dereference运算符,可逆引用指针。引用引用必须引用已经存在的变量,其本身不是变量也不占用内存,相当于变量的别名使用int&类此的形式声明引用变量其作用为向函数传递变量,而不是只传递值,这使......
  • 【C++深度解析】9、const 常量?只读变量?
    文章目录1const常量的判别准则1.1编程实验2小结看了前面的关于const的内容,不知道是不是有疑问,const什么时候为只读变量,什么时候是常量?1const常量的判别准则只有用字面量初始化的const常量才会进入符号表使用其他变量初始化的const常量仍然是只读变量被volatile修......
  • c++打卡第二十八天
    一、以圆类Circle及立体图形类Solid为基础设计圆柱类Cylinder1、题目描述以点类Point及平面图形类Plane为基类公有派生圆类Circle,再以圆类Circle及立体图形类Solid为基类公有派生圆柱类Cylinder,main(void)函数完成对圆柱类Cylinder的测试。Point类结构说明:Point类的数据成员......
  • c++ - 为什么要在构造函数上使用 constexpr?
    我知道 constexpr 允许您在编译时将对象用作常量,但是什么时候这会有益呢?我试图更好地理解关键字,但我找不到一个很好的例子来解释为什么需要它的构造函数。下面的两个例子都有效,那么为什么要将constexpr放在构造函数上呢?在构造函数上使用constexpr:#include<iostream>us......
  • C++随笔:内联(inline)
    内联(inline)    内联函数以牺牲源文件大小为代价减小程序运行的时间,内联函数类似于一种编译器控制的复制/粘贴功能,当一个函数内部逻辑执行的消耗要远小于函数调用本身的消耗时,会额外增加栈空间的消耗,而被标记为内联的函数,编译器会直接将函数的定义“粘贴”到代码的调用处,直接......
  • C++
    计算时间相减定义一个时间类,小时和分钟是其两个私有成员数据。输入一个起始时间和一个结束时间(起始时间早于结束时间),通过运算符重载-(减号),计算这两个时间相隔多少分钟。说明:这两个时间在同一天之内,且采用24小时计时分式,即从00:00-23:59。输入格式:测试输入包含若干测试用例,每个......
  • C++:全局变量和static变量初始化
    (一)全局变量全局变量、文件域中的静态变量、类中的成员静态变量在main函数执行前初始化;局部变量中的静态变量在第一次调用时初始化。C++保证,全局变量在main函数第一次使用它之前,就把它初始化好。(可以直接理解成在main函数执行前就初始化好)但这个初始化可细分为:编译时初始化和运......
  • MySQL日志及分类
    日志是数据库的重要组成部分,主要用来记录数据库的运行情况、日常操作和错误信息。在MySQL中,日志可以分为二进制日志、错误日志、通用查询日志和慢查询日志。对于MySQL的管理工作而言,这些日志文件是不可缺少的。分析这些日志,可以帮助我们了解MySQL数据库的运行情况、日常操......
  • c++输入输出流对象
    实验项目名称:输入输出流一、实验目的掌握文本文件和二进制文件的基本访问方法;了解一般I/O流和文件流的关系;了解文件与文件流的关系;了解文件系统的概念,包括文件指针和关于文件的操作;掌握文件类的定义和相关操作的定义、使用方法;掌握利用常用函数进行文件的打开、关闭、读写......