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;
}