1012. 数字分类
2016-02-08 15:40
399 查看
给定一系列正整数,请按要求对数字进行分类,并输出以下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
分析:分别统计被5除后余数为、1、2、3、4和被10整除的数字的数量,并分别计算A1、A2、A3、A4、A5。如果数量为零,输出N,如果数量大于零,输出An。如果运用if语句,注意else会跟离它最近的if配对。
下列代码VS2015,修改scanf_s就可以在PAT上运行。
[code]#include<stdio.h>int main(void) { int n = 0; int temp, i=0; int a1 = 0, a2 = 0, a3 = 0, a5 = 0, a1_count = 0, a2_count = 0, a2_factor = 1, a4_count = 0, a5_count = 0; double a4 = 0; scanf_s("%d", &n); for (temp = 0; temp < n; temp++) { scanf_s("%d", &i); if (i % 5 == 0) { if (i % 2 == 0) { a1 += i; a1_count++; } } else if (i % 5 == 1) { a2 += i*a2_factor; a2_factor *= -1; a2_count++; } else if (i % 5 == 2) a3++; else if (i % 5 == 3) { a4 += i; a4_count++; } else { a5_count++; if (a5 < i) { a5 = i; } } } a4 /= a4_count; if (a1_count) printf("%d ", a1); else printf("N "); if (a2_count) printf("%d ", a2); else printf("N "); if (a3) printf("%d ", a3); else printf("N "); if (a4_count) printf("%.1lf ", a4); else printf("N "); if (a5_count) printf("%d", a5); else putchar('N'); return 0;}[/code]
相关文章推荐
- 体系结构复习2——指令级并行(分支预測和VLIW)
- [bzoj3203][Sdoi2013]保护出题人
- hdu1789 Doing Homework again(贪心)
- 3.1、随机森林之随机森林实例
- hust 1626 Cutting rope 概率论
- python小白-day5 json&pickle
- HBase数据存储格式
- 借助shared_ptr实现copy-on-write以提高多线程并发性能
- List集合去重的一种方法
- ubuntu tftp服务器安装
- mac上storm standalone安装
- jdbc
- Android图像单位转换
- WMI技术介绍和应用——Event Consumer Provider
- mysql
- 炉石传说斩杀计算器-Android
- 广告
- java 双向链表实现序列
- 读卡器项目总结(四)— 单片机低功耗处理
- Python成长之路第二篇(3)_字典的置函数用法