C语言进阶题(值得一看)

1.C语言进阶题(值得一看)_第1张图片

#include 
double fact(int n)
{
    if(n==0||n==1)
        return 1;
    else return fact(n-1)*n;
}
int main()
{
    int m,n;
    scanf("%d %d",&m,&n);
    int ret = fact(n)/(fact(m)*fact(n-m));
    printf("result = %d",ret);
    return 0;
}

2.C语言进阶题(值得一看)_第2张图片

#include 
#include 
int main()
{
    int n, sum = 0;
    scanf("%d",&n);
    for(int i=1; i<=n; i++)
    {
        sum+=pow(2,i);
    }
    printf("result = %d",sum);
}

3.C语言进阶题(值得一看)_第3张图片

#include 
#include 
int is_prime(long long n)
{
    int flag = 1;
    for (long long i = 2; i <= sqrt(n); i++)
    {
        if (n % i == 0)
            flag = 0;
    }
    if (flag == 1)
        return 1;
    else return 0;
}
int main()
{
    long long n;
    scanf("%lld", &n);
    for (long long j = 2; j < n; j++)
    {
        if (is_prime(j) && is_prime(n - j))
        {
            printf("%lld = %lld + %lld", n, j, n - j);
            break;
        }
    }
    return 0;
}

4.C语言进阶题(值得一看)_第4张图片

#include 
int main()
{
    double eps, i = 1, ret = 1, sum = 0;
    scanf("%le", &eps);
    while(ret >= eps)
    {
        sum = sum + ret;
        ret = ret*(i)/(2*i+1);
        i++;
    }
    sum = sum + ret;
    printf("PI = %.5lf",2*sum);
    return 0;
}

5.C语言进阶题(值得一看)_第5张图片

#include 
int main()
{
    int n, k, sum = 0, count = 0, flag = 0;
    scanf("%d %d", &n, &k);
    for (int i = n; i > 1; i--)
    {
        int j = 0;
        for (j = 2; j < i; j++)
            if (i % j == 0)
                break;
        if (j == i)
        {
            if (flag == 0)
            {
                sum += j;
                count++;
                printf("%d", j);
                flag = 1;
            }
            else
            {
                sum += j;
                count++;
                printf("+%d", j);
            }
        }
        if (count == k)
            break;
    }
    printf("=%d", sum);
    return 0;
}

6.C语言进阶题(值得一看)_第6张图片

#include 
#include 
int main()
{
    int n, arr[n];
    scanf("%d", &n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr[i]);
    }
    for (int i = 0; i < n; i++)
    {
        int j = 0, flag = 1;
        for (j = 2; j <= sqrt(arr[i]); j++)
        {
            if (arr[i] % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag == 1 && arr[i] != 1)
            printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

7.C语言进阶题(值得一看)_第7张图片

#include 
int main()
{
    int n, y;
    scanf("%d %d", &n, &y);
    for (int x = n;; x++)
    {
        int a = 0, b = x, count = 4, arr[4] = {0};
        while (b != 0)
        {
            arr[a++] = b % 10;
            b /= 10;
        }
        for (int i = 0; i < 3; i++)
        {
            for (int j = i + 1; j < 4; j++)
            {
                if (arr[i] == arr[j])
                {
                    count--;
                    break;
                }
            }
        }
        if (count == y)
        {
            printf("%d %04d", x - n, x);
            break;
        }
    }
    return 0;
}

8.C语言进阶题(值得一看)_第8张图片

#include 
#define pi  3.1415926
double cylinder(double r, int h)
{
    return pi * r * r *h;
}
int main()
{
    double r;
    int h;
    scanf("%lf %d",&r,&h);
    double v = cylinder(r, h);
    printf("Volume = %.3lf",v);
    return 0;
}

你可能感兴趣的:(c语言,算法,开发语言)