1012 数字分类 (20分)

输入格式:

每个输入包含 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

算法思想:

由于输出的数字只有5个,就不需要数组了,直接在接收数据时对其进行处理就可以。我又犯了没看题的老毛病,把开始的13看成一个数,得出的平均数就不同,看了好久才找到哪里错了。

其中要注意的一点是:余数=1时,一开始设定的初始值是0,但是交错相加有等于0 的可能,因此我设定了一个bool类型的值,如果没有余数=1 的数,flag的值就不会变。

还有一点是两个函数:

1.cout << fixed << setprecision(1) << average4 << " ";  输出的精确到小数点后几位     #include <iomanip>

2.sum2 += pow(-1.0,time2)*num;   -1的n次幂   #include <cmath>

完整代码如下:

 1 #include <iostream>
2 #include <iomanip>
3 #include <cmath>
4
5 using namespace std;
6 int main()
7 {
8 //输入个数
9 int counts,time = 0;
10 cin >> counts;
11
12 int num;
13 int sum1 = 0;//A1
14
15 int time2 = 1,sum2 = 0;//A2
16 bool flag2 = false;//判断是否有余数为1的数
17
18 int count3 = 0;//A3
19
20 double count4 = 0,sum4 = 0,average4 = 0;//A4
21
22 int max_num = 0;//A5
23 while(time < counts && cin >> num)
24 {
25 int remainder = num % 5;
26 switch(remainder)
27 {
28 case 0:
29 if(num%2 == 0)sum1+=num;
30 break;
31 case 1:
32 time2++;
33 sum2 += pow(-1.0,time2)*num;
34 flag2 = true;//若flag2的值改变则表示有余数为1的值
35 break;
36 case 2:
37 count3 ++;
38 break;
39 case 3:
40 sum4 += num;
41 count4++;
42 average4 = sum4/count4;
43 break;
44 case 4:
45 max_num = num > max_num ? num:max_num;
46 break;
47 }
48 time++;
49 }
50
51 if(sum1 == 0)cout << "N ";
52 else cout << sum1 << " ";
53
54 if(!flag2)cout << "N ";
55 else cout << sum2 << " ";
56
57 if(count3 == 0)cout << "N ";
58 else cout << count3 << " ";
59
60 if(average4 == 0)cout << "N ";
61 else cout << fixed << setprecision(1) << average4 << " ";
62
63 if(max_num == 0)cout << "N";
64 else cout << max_num;
65
66
67
68 return 0;
69 }

最新文章

  1. js 实现继承相关
  2. Java同步块
  3. 分析代码的利器 - ctags
  4. 使用EntityFramework连接 Mysql
  5. rman 使用catalog备份的演示
  6. Beauty Contest 凸包+旋转卡壳法
  7. iOS 11更新后以及iPhone X推出后工程中遇到的问题及适配
  8. window.btoa 和 window.atob
  9. 基于hi-nginx的web开发(python篇)——使用jinja2模板引擎
  10. 下拉框选择selected
  11. Java 7 for Absolute Beginners/Java 7基础教程--读后感
  12. vivado 下安装modelsim
  13. Oracle之with as和update用法
  14. js之清除Cookie
  15. 用VisualAssist在Visual Studio上设置快捷键快速编程
  16. Python: 从字典中提取子集--字典推导
  17. 关于Mysql数据库进行多表查询时设计编程思想
  18. 巅峰极客第二场CTF部分writeup
  19. iOS 性能监测
  20. Perl 子程序(函数)

热门文章

  1. spring-cloud-square源码速读(spring-cloud-square-okhttp篇)
  2. 修改linux 两种时间的方法
  3. java+selenium+testNG+Allure报表【新增截图到报表功能】
  4. PTA 6-1 求采用邻接矩阵作为存储结构的无向图各顶点的度 (6分)
  5. tabulate
  6. HVV奇兵—网页防篡改系统在网络安全实战演习中的妙用(上)
  7. 暑假算法练习Day3
  8. 快速搭建 kvm web 管理工具 WebVirtMgr
  9. ESP32-S3 搭建 micropython 开发环境,固件编译,烧录
  10. 分析师机构发布中国低代码平台现状分析报告,华为云AppCube为数字化转型加码