HDOJ题目(11.22-12.22)

HDOJ题目(11.22-12.22)

hdoj_2000

注意getchar的用方法,按照以上的输入之后,处理三个字符以外还会有换行符

#include<iostream>
#include<cstdio> 
#include<algorithm>
#include<algorithm>
using namespace std;
int main()
{
    char arr[3];
    while(scanf("%c%c%c",&arr[0],&arr[1],&arr[2])!=EOF)
    {
        //cout<<getchar(); //输出是10 
        //cout<<(int)('\n'); //输出也是10 
        getchar(); 
        sort(arr,arr+3);
        printf("%c %c %c\n",arr[0],arr[1],arr[2]);
    } 
}

hdoj_2002

#include<iostream>
#include<cstdio> 
#include<algorithm>
#include<algorithm>
#include<cmath>
#define PI 3.1415927
using namespace std;

int main()
{
    //double精度高,有效数字16位,float精度7位
    //用double才够表示,不然会溢出 
    double r;
    double rst;
    while(scanf("%lf",&r)!=EOF)
    {
        rst=(4/3.0)*PI*pow(r,3);//注意一定要3.0或者4.0,不然3/4=1 
        printf("%.3lf\n",rst);
    }
}

hdoj_2005

会忘记归0很不好

#include<iostream>
#include<cstdio> 
#include<algorithm>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int year,month,day;
    char ch;
    
    int arr1[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int arr2[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
    while(scanf("%d%c%d%c%d",&year,&ch,&month,&ch,&day)!=EOF)
    {
        int rst=0; //算完一次要归0 
        if(year%400==0 ||(year%4==0 && year%100!=0))//闰年 
        {
            for(int i=0;i<month;i++)
                rst+=arr2[i];
            rst+=day;    
        }
        else//非闰年 
        {
            for(int i=0;i<month;i++)
                rst+=arr1[i];
            rst+=day;
        }
        printf("%d\n",rst);
    }
}

hdoj_2006

#include<iostream>
#include<cstdio> 
#include<algorithm>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int arr[10000];//不可以用int arr[n]本地正确,但是oj会编译出错 
        long long rst=1;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&arr[i]);
            if(arr[i]%2!=0)
                rst*=arr[i];
        }
        printf("%lld\n",rst);    //用lld不然会溢出 
            
     } 
} 

hdoj_2007

#include<iostream>
#include<cstdio> 
#include<algorithm>
#include<algorithm>
#include<cmath>
using namespace std;
int main()
{
    int L,R;
    while(scanf("%d %d",&L,&R)!=EOF)
    {
        long long rst1=0,rst2=0;
        if(L>R)
            swap(L,R) ;//坑点在此,题目没有明说大小 
        for(int i=L;i<=R;i++)
        {
            if(i%2==0)
                rst1+=pow(i,2);
            else
                rst2+=pow(i,3);            
        }    
        printf("%lld %lld\n",rst1,rst2);
    }
} 

猜你喜欢

转载自www.cnblogs.com/zmmz/p/10007416.html