1. 程式人生 > >數字分類 (20)

數字分類 (20)

com out str 求和 des 要求 存在 輸出 gree

時間限制 1000 ms 內存限制 32768 KB 代碼長度限制 100 KB 判斷程序 Standard (來自 小小)

題目描述

給定一系列正整數,請按要求對數字進行分類,並輸出以下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”。

輸入例子:

13 1 2 3 4 5 6 7 8 9 10 20 16 18

輸出例子:

30 11 2 9.7 9

 1 #include <iostream>
 2 #include <iomanip>
 3 using namespace std;
 4 int main(int argc, const char * argv[]) {
 5     
 6     int n=13;
 7     int
a[1000]; 8 int a1=0; int a2=0; int a3=0; float a4=0.0; int a5=0; 9 //先輸入n 10 cin>>n; 11 //將所有輸入記錄在數組a裏 12 for(int i=0;i<n;i++){ 13 cin>>a[i]; 14 } 15 //A1 = 能被5整除的數字中所有偶數的和; 16 for(int i=0;i<n;i++){ 17 if(a[i]%5==0 && a[i]%2==0){ 18 a1 += a[i];
19 } 20 } 21 //A2 = 將被5除後余1的數字按給出順序進行交錯求和,即計算n1-n2+n3-n4...; 22 int j=0; 23 for(int i=0;i<n;i++){ 24 25 if(a[i]%5==1){ 26 if(j%2==0){ 27 a2=a2+a[i]; 28 }else{ 29 a2=a2-a[i]; 30 } 31 j++; 32 } 33 } 34 //A3 = 被5除後余2的數字的個數; 35 for(int i=0;i<n;i++){ 36 if(a[i]%5==2){ 37 a3++; 38 } 39 } 40 //A4 = 被5除後余3的數字的平均數,精確到小數點後1位; 41 j=0; 42 for(int i=0;i<n;i++){ 43 if(a[i]%5==3){ 44 j++; 45 a4 += a[i]; 46 } 47 } 48 if(a4 != 0.0) 49 a4=a4/j; 50 //A5 = 被5除後余4的數字中最大數字。 51 for(int i=0;i<n;i++){ 52 if(a[i]%5==4 && a[i]>a5){ 53 a5=a[i]; 54 } 55 } 56 if(a1==0){ 57 cout<<"N "; 58 }else{ 59 cout<<a1<<" "; 60 } 61 if(a2==0){ 62 cout<<"N "; 63 }else{ 64 cout<<a2<<" "; 65 } 66 if(a3==0){ 67 cout<<"N "; 68 }else{ 69 cout<<a3<<" "; 70 } 71 if(a4 == 0.0){ 72 cout<<"N "; 73 }else{ 74 cout<<setiosflags(ios::fixed)<<setprecision(1)<<a4<<" "; 75 } 76 if(a5==0){ 77 cout<<"N"<<endl; 78 }else{ 79 cout<<a5<<endl; 80 } 81 82 return 0; 83 }

數字分類 (20)