1012 数字分类
数字 分类
2023-09-14 09:15:02 时间
1012 数字分类
分数 20
作者 CHEN, Yue
单位 浙江大学
给定一系列正整数,请按要求对数字进行分类,并输出以下 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
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C++ (g++)
思路:
我们设置5个ans记录A1~A5的结果,五个flag记录5个类型的数字是否出现 然后a2 a4用两个标志记录下标,最后按题目输入输出即可。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int ans1,ans2,ans3,ans4,ans5;
bool flag1,flag2,flag3,flag4,flag5;
int cnt2,cnt4;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
int x;
cin>>x;
if(x%5==0&&x%2==0){
ans1+=x;
flag1=true;
}
if(x%5==1){
if(cnt2%2==0) ans2+=x;
else ans2-=x;
cnt2++;
flag2=true;
}
if(x%5==2){
ans3++;
flag3=true;
}
if(x%5==3){
ans4+=x;
cnt4++;
flag4=true;
}
if(x%5==4){
ans5=max(ans5,x);
flag5=true;
}
}
if(flag1) cout<<ans1<<" ";
else cout<<"N ";
if(flag2) cout<<ans2<<" ";
else cout<<"N ";
if(flag3) cout<<ans3<<" ";
else cout<<"N ";
if(flag4) printf("%.1lf ",ans4*1.0/cnt4);
else cout<<"N ";
if(flag5) cout<<ans5;
else cout<<"N";
return 0;
}
相关文章
- 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
- Java实现 LeetCode 374 猜数字大小 II
- Java实现第八届蓝桥杯国赛 数字划分
- 面试题 17.05. 字母与数字
- vue或uniapp中文本框输入数字固定几位小数或只能输入整数的方法
- DL之CNN:自定义SimpleConvNet【3层,im2col优化】利用mnist数据集实现手写数字识别多分类训练来评估模型
- 基于径向基函数RBF网络的手写数字分类(Matlab代码实现)
- m基于FPGA的数字下变频verilog设计
- VB编程:Val字符串转数字,CStr数字转字符串-6
- 2015华为机试——数字基root
- android 如何将电话簿SDN数字和其他普通的数字混合在一起?
- 数字资产分类
- 机器学习特征表达——日期与时间特征做离散处理(数字到分类的映射),稀疏类分组(相似特征归档),创建虚拟变量(提取新特征) 本质就是要么多变少,或少变多
- 数字信号处理——CORDIC运算模块设计(3)