problemscpp
A collection of my answers to algorithm problems in c++.
函数
pat::b::b1012 命名空间参考

1012 数字分类 更多...

函数

int main (istream &cin, ostream &cout)
 
 TEST (b1012, case1)
 
 TEST (b1012, case2)
 

详细描述

1012 数字分类

函数说明

◆ main()

int pat::b::b1012::main ( istream &  cin,
ostream &  cout 
)

在文件 pat.cpp340 行定义.

340 {
341 int n;
342 cin >> n;
343 int a1 = 0;
344 int a2 = 0;
345 bool a2_flag = true;
346 int a2_count = 0;
347 int a3 = 0;
348 int a4_sum = 0;
349 int a4_count = 0;
350 int a5 = 0;
351 for(int i = 0; i < n; i++) {
352 int num;
353 cin >> num;
354 const int remainder = num % 5;
355 switch(remainder) {
356 case 0:
357 if(num % 2 == 0) {
358 a1 += num;
359 }
360 break;
361 case 1:
362 if(a2_flag) {
363 a2 += num;
364 } else {
365 a2 -= num;
366 }
367 a2_flag = !a2_flag;
368 a2_count++;
369 break;
370 case 2:
371 a3++;
372 break;
373 case 3:
374 a4_sum += num;
375 a4_count++;
376 break;
377 case 4:
378 a5 = max(a5, num);
379 break;
380 }
381 }
382 const double a4 = static_cast<double>(a4_sum) / a4_count;
383 if(a1 == 0) {
384 cout << 'N';
385 } else {
386 cout << a1;
387 }
388 cout << ' ';
389 if(a2_count == 0) {
390 cout << 'N';
391 } else {
392 cout << a2;
393 }
394 cout << ' ';
395 if(a3 == 0) {
396 cout << 'N';
397 } else {
398 cout << a3;
399 }
400 cout << ' ';
401 if(a4_count == 0) {
402 cout << 'N';
403 } else {
404 cout << fixed << setprecision(1) << a4;
405 }
406 cout << ' ';
407 if(a5 == 0) {
408 cout << 'N';
409 } else {
410 cout << a5;
411 }
412 return 0;
413 }

被这些函数引用 TEST().

◆ TEST() [1/2]

pat::b::b1012::TEST ( b1012  ,
case1   
)

在文件 pat_test.cpp162 行定义.

162 {
163 istringstream in("13 1 2 3 4 5 6 7 8 9 10 20 16 18");
164 auto out = ostringstream();
165 main(in, out);
166 const auto ans = out.str();
167 ASSERT_EQ("30 11 2 9.7 9", ans);
168 }
int main(int argc, char **argv)
Definition: main.cpp:5

引用了 main().

◆ TEST() [2/2]

pat::b::b1012::TEST ( b1012  ,
case2   
)

在文件 pat_test.cpp170 行定义.

170 {
171 istringstream in("8 1 2 4 5 6 7 9 16");
172 auto out = ostringstream();
173 main(in, out);
174 const auto ans = out.str();
175 ASSERT_EQ("N 11 2 N 9", ans);
176 }

引用了 main().