PAT 1012. 數字分類

1012. 數字分類 (20)

時間限制
100 ms
內存限制
65536 kB
代碼長度限制
8000 B
判題程序
Standard
作者
CHEN, Yue

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

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
	int n,tmp,sign=1;
	float a4(0);
	int a1(0),a2(0),a3(0),c4(0),a5(0);
	bool f1(0),f2(0),f3(0),f4(0),f5(0);
	cin>>n;
	while(n--){
		cin>>tmp;
		switch(tmp%5){
			case 0:
				if(tmp%2==0){
					f1=1;
					a1+=tmp;
				}
				break;
			case 1:
				f2=1;
				a2+=sign*tmp;
				sign=(-1)*sign;
				break;
			case 2:
				f3=1;
				a3++;
				break;
			case 3:
				f4=1;
				c4++;
				a4+=tmp;
				break;
			case 4:
				f5=1; 
				if(tmp>a5) a5=tmp;
				break;
			default:
				break;
		}
	}
	if(f1==1) cout<<a1<<" ";
	else cout<<"N ";
	if(f2==1) cout<<a2<<" ";
	else cout<<"N ";
	if(f3==1) cout<<a3<<" ";
	else cout<<"N ";
	if(f4==1) printf("%.1f ",a4/c4);
	else cout<<"N ";
	if(f5==1) cout<<a5;
	else cout<<"N";
	return 0;
}

Sume:

在C++的編程中,總會遇到浮點數的處理,有的時候,我們只需要保留2位小數作爲輸出的結果,這時候,問題來了,怎樣才能讓cout輸出指定的小數點後保留位數呢?

在C語言的編程中,我們可以這樣實現它:

  1. printf("%.2f", sample);  
在C++中,是沒有格式符的,我們可以通過使用setprecision()函數來實現這個需求。

想要使用setprecision()函數,必須包含頭文件#include <iomanip>。使用方式如下:

  1. cout << "a=" << setprecision(2) << a <<endl;  
這時候,我們會發現,如果a的值爲0.20001,輸出的結果爲a=0.2,後面第二位的0被省略了。

如果我們想要讓它自動補0,需要在cout之前進行補0的定義。代碼如下:

  1. cout.setf(ios::fixed);  
  2. cout << "a=" <<fixed<< setprecision(2) << a <<endl; //輸出a=0.20  
這樣,我們就可以得到0.20了。當然,如果想要關閉掉補0,只需要對fixed進行取消設置操作。
  1. cout.unsetf(ios::fixed);  
  2. cout << "a=" << setprecision(2) << a <<endl; //輸出a=0.2  
我們的輸出結果就又變回a=0.2了。

發佈了83 篇原創文章 · 獲贊 21 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章