PAT乙级 数字分类 (20)

来源:互联网 发布:成为算法工程师 编辑:程序博客网 时间:2024/05/20 15:58

这道题其实就是一个简单的逻辑题,由于没有编译环境,纯txt编程就会出各种小问题,错了几次。

后来找到了一个在线编程的小网站http://ideone.com/,那是相当粗暴了。

以后应该多用用。

这道题中有一个部分需要控制一下精度,顺便学习了一下cout怎么控制精度输出。

#include "iostream"#include "stdio.h"#include "string.h"#include "iomanip"using namespace std;   int main(){    int n;    long num;          long a1 = 0,a2 = 0,a3 = 0,a5 = -999999;    double a4 = 0;          long numa[5];    memset(numa,0,sizeof(numa));          int count = 1;    cin>>n;          /*    A1 = 能被5整除的数字中所有偶数的和;    A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4...;    A3 = 被5除后余2的数字的个数;    A4 = 被5除后余3的数字的平均数,精确到小数点后1位;    A5 = 被5除后余4的数字中最大数字。    */          while(n--)    {      cin>>num;      if((num%5==0)&&(num%2==0))      {          a1+=num;          numa[0] ++;      }      else if(num%5==1)      {          numa[1]++;          if(numa[1]%2==0)              a2-=num;          else              a2+=num;      }      else if(num%5==2)      {          numa[2]++;        }      else if(num%5==3)      {          numa[3]++;          a4+=num;      }      else if(num%5==4)      {          numa[4]++;          if(num>a5)              a5 = num;      }    }         cout.setf(ios::fixed);    cout.setf(ios::showpoint);    cout.precision(1);         if(numa[3]!=0)    {        a4 = double(a4/numa[3]);        //cout<<"a4 = "<<a4<<endl;    }          if(numa[0]==0)        {        cout<<"N ";    }    else        {        cout<<a1<<" ";    }          if(numa[1]==0)        {        cout<<"N ";    }    else        {        cout<<a2<<" ";    }          if(numa[2]==0)        {        cout<<"N ";    }    else        {        cout<<numa[2]<<" ";    }          if(numa[3]==0)        {        cout<<"N ";    }    else        {        cout<<a4<<" ";    }          if(numa[4]==0)        {        cout<<"N";    }    else        {        cout<<a5;    }          return 0;}


0 0
原创粉丝点击