标签:存在 ctrl name 实现 大数 practise problem content pause
给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:
输入格式:
每个输入包含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
程序说明:
1.使用 while(cin>>n) 进行输入,需按 “ctrl”+“z” 再按回车键停止输入
2.求A2时,记录被5除后余1的个数为 n(初始值为0),再求 (-1) 的 n 次方,即可实现交错求和,其中 pow(a,b) 函数表示求 a 的 b 次方
else if(num[i]%5==1){ mul=pow(-1,j); sum2+= num[i]*mul; j++; }
3.求A4时,两个整数相除保留小数部分有两种方法:
int a,b; float c; c=(1.0*a)/(1.0*b); c=(float)a/(float)b;
4.控制输出小数点后位数,使用 #include <iomanip> 头文件,该文件控制输入输出的格式:
cout<<setiosflags(ios::fixed)<<setprecision(n)<<avr; // n为输出的小数点后的位数,avr为要输出的浮点数
C++ 代码如下:
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int max(int a,int b){ 5 if(a<b) return b; 6 else return a; 7 } 8 int main() { 9 vector<int> num; 10 int n,sum1,sum2,sum3,count,count1,count2,count3,count4,j=0,temp=0; 11 count=count1=count2=count3=count4=0; 12 sum1=sum2=sum3=0; 13 float avr; 14 int max_num,mul; 15 while(cin>>n){ 16 num.push_back(n); 17 } 18 n=num[0]; 19 for(int i=1;i<=n;i++){ 20 if(num[i]%5==0){ 21 if(num[i]%2==0){ 22 sum1+=num[i]; 23 count++; 24 } 25 } 26 else if(num[i]%5==1){ 27 mul=pow(-1,j); 28 sum2+= num[i]*mul; 29 j++; 30 } 31 else if(num[i]%5==2){ 32 count2++; 33 } 34 else if(num[i]%5==3){ 35 sum3+=num[i]; 36 count3++; 37 } 38 else{ 39 max_num=max(temp,num[i]); 40 temp=max_num; 41 count4++; 42 } 43 } 44 if(count>0) cout<<sum1<<‘ ‘; 45 else cout<<"N "; 46 if(j>0) cout<<sum2<<‘ ‘; 47 else cout<<"N "; 48 if(count2>0) cout<<count2<<‘ ‘; 49 else cout<<"N "; 50 if(count3>0) { 51 avr =(1.0*sum3)/(1.0*count3); 52 cout<<setiosflags(ios::fixed)<<setprecision(1)<<avr<<‘ ‘; 53 } 54 else cout<<"N "; 55 if(count4>0) cout<<max_num; 56 else cout<<"N"; 57 system("pause"); 58 return 0; 59 }
标签:存在 ctrl name 实现 大数 practise problem content pause
原文地址:https://www.cnblogs.com/pgzhang/p/8946170.html