https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840
一开始这题的测试点8没通过,我感觉是题出的有问题,因为它保证输入的数是正整数,但感觉还是输入了0。所以只好增加了f1到f5来检测每种情况。
题意:这题先输入一个n,再输入n个正整数,分别算出这n个数中:
(1)能被5整除的偶数的和。
(2)被 5 除后余 1 的数,进行加减交叉运算,n1−n2+n3−n4⋯;
(3)被 5 除后余 2 的数的个数;
(4)被 5 除后余 3 的数的平均数,保留1位小数;
(5)被 5 除后余 4 的数中的最大数。
#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
int main(){
int n, num, count=0;
int a1=0, a2=0, a3=0, a4=0, a5=0;
int f1=0, f2=0, f3=0, f4=0, f5=0;
int flag = 1;
float b4=0.0;
cin >> n;
for(int i=0; i<n; i++){
cin >> num;
if(num%10 == 0){
a1 += num;
f1 = 1;
}else if(num%5 == 1){
a2 += flag * num;
flag = -flag;
f2 = 1;
}else if(num%5 == 2){
a3 ++;
f3 = 1;
}else if(num%5 == 3){
count ++;
a4 += num;
f4 = 1;
}else if(num%5 == 4 && a5 < num){
a5 = num;
f5 = 1;
}
}
b4 = a4 / (count * 1.0);
if(f1) cout << a1 << " "; else cout << "N ";
if(f2) cout << a2 << " "; else cout << "N ";
if(f3) cout << a3 << " "; else cout << "N ";
if(f4) printf("%.1f ", b4); else cout << "N ";
if(f5) cout << a5; else cout << "N";
return 0;
}