1012 数字分类 (20 分)

给定一系列正整数,请按要求对数字进行分类,并输出以下 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 的数字中最大数字。

输入格式:

每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过 1000 的待分类的正整数。数字间以空格分隔。

输出格式:

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

若其中某一类数字不存在,则在相应位置输出 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

分析:这个题是真的累,已经做过一遍在做一遍还是错误连连,比较注意的一点应该是第三类数字是小数,但除数和被除数都是整数,总忘记转换类型。
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 int main()
 8 {
 9     int n,a[1001];
10     cin>>n;
11     int num[5][1000];
12     int f[5]={0},s[5]={0};
13     double s3;
14
15     for(int i=0;i<n;i++)
16     {
17         cin>>a[i];
18         int x=a[i]%5;
19         switch(x)
20         {
21             case 0:
22             if(a[i]%2==0)
23                 num[0][f[0]++]=a[i];
24                 break;
25             case 1:
26                 num[1][f[1]++]=a[i];
27                 break;
28             case 2:
29                 num[2][f[2]++]=a[i];
30                 break;
31             case 3:
32                 num[3][f[3]++]=a[i];
33                 break;
34             case 4:
35                 num[4][f[4]++]=a[i];
36                 break;
37         }
38
39     }
40
41     for(int i=0;i<f[0];i++)
42     {
43         s[0]+=num[0][i];
44     }
45     if(f[0]!=0)
46         cout<<s[0]<<‘ ‘;
47     else
48         cout<<"N ";
49     for(int i=0;i<f[1];i++)
50     {
51         s[1]+=pow(-1,i)*num[1][i];
52     }
53     if(f[1]!=0)
54         cout<<s[1]<<‘ ‘;
55     else
56         cout<<"N ";
57     s[2]=f[2];
58     if(f[2]!=0)
59         cout<<s[2]<<‘ ‘;
60     else
61         cout<<"N ";
62     for(int i=0;i<f[3];i++)
63     {
64         s[3]+=num[3][i];
65     }
66     s3=(double)s[3]/f[3];
67     if(f[3]!=0)
68         printf("%.1f ",s3);
69     else
70         cout<<"N ";
71     for(int k=1;k<f[4];k++)
72     {
73         if(num[4][k]>num[4][0])
74             num[4][0]=num[4][k];
75     }
76     s[4]=num[4][0];
77     if(f[4]!=0)
78         cout<<s[4];
79     else
80         cout<<‘N‘;
81 }

原文地址:https://www.cnblogs.com/ygjojo/p/10742264.html

时间: 2024-10-07 11:13:29

1012 数字分类 (20 分)的相关文章

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的待分类的

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. 数字分类 (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. 数字分类 (20) AC

#include<stdio.h> #include<stdlib.h> int main() { int n; int A1,A2,A3,A4,A5,tag,numA4,max=-1,A2tag=0; A1=A2=A3=A4=A5=tag=numA4=0; scanf("%d",&n); for(int t=0 ; t<n ; ++t) { int tmp; scanf("%d",&tmp); if(tmp%5==0

PAT 1012 数字分类 C语言

给定一系列正整数,请按要求对数字进行分类,并输出以下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的待分类的正整数.数字间以空格分隔. 输出格式:

*1012. 数字分类

1 /* 2 * Main.c 3 * 1012. 数字分类 4 * Created on: 2014年8月30日 5 * Author: Boomkeeper 6 ********部分通过****** 7 */ 8 9 #include <stdio.h> 10 #include <math.h> 11 12 void A1(int in,int* sum){ 13 14 if(in%5==0&&in%2==0) 15 (*sum)+=in; 16 } 17 18

数字分类 (20)

数字分类 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数字. 输入描述: 每个输入包含1个测试用例.每个测试用

问题 G: 数字分类 (20)

问题 G: 数字分类 (20) 时间限制: 1 Sec  内存限制: 32 MB献花: 188  解决: 77[献花][花圈][TK题库] 题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和: A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...: A3 = 被5除后余2的数字的个数: A4 = 被5除后余3的数字的平均数,精确到小数点后1位: A5 = 被5除后余4的数字中最大数字. 输入 每个

PTA乙级 (1048 数字加密 (20分))

1048 数字加密 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805276438282240 第一次提交:  错误原因:a的位数大于b时,b不足的位需要补0做运算! 第二次提交: 代码: #include <iostream> #include <cstring> #include <string> #include <cmath> #include <alg