ACM-ICPC基本算法之求值法

171 阅读2分钟

#include <iostream>
using namespace std;
int maximum(int x,int y,int z)
{
    int max;
    max = x;
    if(max < y) max = y;
    if(max < z) max = z;
    return max;
}
int main()
{
    int x,y,z;
    cin >> x >> y >> z;
    cout << maximum(x,y,z) << endl;
    return 0;
}

image-20200713213712849

#include <iostream>
#include <algorithm>
using namespace std;
int a[2005];
bool cmp(int a,int b)
{
    return a > b;   //升序排列
}
int main()
{
    int len = 0;
    int sum = 0;
    while(cin >> a[len] && a[len]){
        sum += a[len];
        len++;
    }
    sort(a,a+len,cmp);
    double middle = (len%2)?a[len/2]:((a[len/2]+a[len/2-1])/2.0);
    double avg = sum * 1.0 / len;
    printf("%s\n",middle>avg?"Yes":"No");
    return 0;
}

image-20200713215455439

#include <iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    if(n % 4 == 0 && n % 100 != 0 || n % 400 == 0)  cout << "Yes";
    else    cout << "No";
    return 0;
}

image-20200713215915617

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int isprime(int m)
{
    int i;
    for(int i=2;i<=sqrt(m);i++){
        if(m%i==0)
            return 0;
        return 1;
    }
}
int main()
{
    int n;
    cin >> n;
    if(isprime(n))  cout << "prime" << endl;
    else cout << "not prime" << endl;
    return 0;
}

image-20200713220324753

#include <iostream>
#include <cmath>
using namespace std;
int day(int y,int m,int d)
{
    int a[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
    int i,sum = 0;
    for(i=0; i<m-1; i++)
        sum = sum + a[i];
    if(m > 2)
        if((y%4==0&&y%100!=0)||(y%400==0))
            sum++;
    sum = sum + d;
    return sum;
}
int main()
{
    int y,m,d;
    cin >> y >> m >> d;
    cout <<day(y,m,d);
    return 0;
}

image-20200713221206867

#include <iostream>
using namespace std;
int main()
{
    int a[10000],i,j,l=0,s,n;
    cin >> n;
    a[0] = 1;
    for(i=1;i<=n;i++)
    {
        s = 0;
        for(j = 0;j<=l;j++)
        {
            s = s + a[j] * i;
            a[j] = s % 10;
            s = s / 10;
        }
        while(s)
        {
            l++;
            a[l] = s%10;
            s = s / 10;
        }
    }
    for(i=l;i>=0;i--)
        cout << a[i];
    return 0;
}