0
点赞
收藏
分享

微信扫一扫

C语言练习题110例(十)

橙子好吃吗 2024-01-26 阅读 10

91.杨辉三角

题目描述:

KK知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他

解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。其性质包括:每行的端点数为1, 一个数也为1;每个数等于它左上方和上方的两数之和。

输入描述:

输出描述:

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int i = 0;
    int j = 0;
    int arr[30][30] = { 0 };
    for (i = 0; i < n; i++)
    {
        for (j = 0; j <= i; j++)
        {
            if (i == j)
            {
                arr[i][j] = 1;
            }
            if (j == 0)
            {
                arr[i][j] = 1;
            }
            if (i > 1 && j > 0)
            {
                arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
            }
        }
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j <= i; j++ )
        {
            printf("%5d", arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}

92.井字棋

题目描述:

KK和BoBo玩 “井”字棋。也就是在九宫格中,只要任意行、列,或者任意对角线上面出现三个连续相同的棋子,就能获胜。请根据棋盘状态,判断当前输赢。

输入描述:

输出描述:

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int i = 0;
    int j = 0;
    int arr[3][3] = { 0 };
    char flag = 'O';
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            scanf(" %c", &arr[i][j]);
        }
    }

    for (i = 0; i < 3; i++)
    {
        if (arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2])
        {
            flag = arr[i][1];
            break;
        }
        if (arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i])
        {
            flag = arr[1][i];
            break;
        }
        if (arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2])
        {
            flag = arr[1][1];
            break;
        }
        if (arr[0][2] == arr[1][1] && arr[1][1] == arr[0][0] )
        {
            flag = arr[1][1];
            break;
        }

    }
    if (flag == 'K')
        printf("KK wins!\n");
    else if (flag == 'B')
        printf("BOBO wins!\n");
    else
        printf("No winn\n");
    return 0;
}

93.小乐乐与进制转换

题目描述:

输入一个正整数n (1 ≤ n ≤ 109)

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    int i = 0;
    scanf("%d", &n);
    int arr[20] = { 0 };
    while (n)
    {
        arr[i++] = n % 6;
        n /= 6;
    }

    for (i--; i >= 0; i-- )
    {
        printf("%d", arr[i]);
    }
    return 0;
}

94.小乐乐求和

题目描述:

小乐乐最近接触了求和符号Σ,他想计算外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传的结果。但是小乐乐很笨,请你帮助他解答。

输入描述:

输出描述:

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int sum = 0;
    int i = 0;
    for (i = 1; i <= n; i++)
    {
        sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

95.小乐乐定闹钟

题目描述:

小乐乐比较懒惰,他现在想睡觉,然后再去学习。他知道现在的时刻,以及自己要睡的时长,想设定一个闹钟叫他起床学习,但是他太笨了,不知道应该把闹钟设定在哪个时刻,请你帮助他。(只考虑时和分,不考虑日期)

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int k = 0;
    int hour = 0;
    int minute = 0;
    scanf("%d:%d %d", &hour, &minute, &k);
    hour = k / 60 + hour;
    minute = k % 60;
    printf("%02d:%02d", hour, minute);
    return 0;
}

96.小乐乐排电梯

题目描述:

小乐乐学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。请帮助小乐乐计算还需要多少分钟才能乘电梯到达楼上。(假设最初电梯在1层)

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    int time = 2;
    scanf("%d", &n);
    if (n / 12 == 1)
    {
        printf("%d\n", time+4);
    }
    else
    {
        printf("%d\n", time);
    }
    return 0;
}

97.小乐乐与欧几里得

题目描述:

小乐乐最近在课上学习了如何求两个正整数的最大公约数与最小公倍数,但是他竟然不会求两个正整数的最大公约数与最小公倍数之和,请你帮助他解决这个问题。

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    int m = 0;
    scanf("%d%d", &n, &m);
    int max = n > m ? n : m;
    int min = n > m ? m : n;
    int GCD = 0; //最大公因数
    int Lcm = 0; //最小公倍数
    while (1)
    {
        if (n % min == 0 && m % min == 0)
        {
            GCD = min;
            break;
        }
        else
        {
            min--;
        }
    }

    while (1)
    {
        if (max % m == 0 && max % n == 0)
        {
            Lcm = max;
            break;
        }
        else
        {
            max++;
        }
    }
    printf("%d\n", GCD+ Lcm);
    return 0;
}

98.小乐乐改数字

题目描述:

小乐乐喜欢数字,尤其喜欢0和1。他现在得到了一个数,想把每位的数变成0或1。如果某一位是奇数,就把它变成1,如果是偶数,那么就把它变成0。请你回答他最后得到的数是多少。

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出

参考代码:

#include <stdio.h>
#include <math.h>

int main()
{
    int n = 0;
    int i = 0;
    int ret = 0;
    scanf("%d", &n);
    while (n)
    {
        int a = n % 10;
        if (a % 2 == 0)
        {
            a=0;
        }
        else
        {
            a=1;
        }
        ret += a * pow(10, i);
        n = n / 10;
        i++;
    }
    printf("%d", ret);
    return 0;
}

99.小乐乐走台阶

题目描述:

小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int fib(int n)
{
    if (n <= 2)
    {
        return n;
    }
    else
    {
        return fib(n - 1) + fib(n - 2);
    }
}

int main()
{
    int n = 0;
    scanf("%d", &n);
    int num = fib(n);
    printf("%d\n", num);
    return 0;
}

100.小乐乐和序列

题目描述:

老师给了小乐乐一个正整数序列,要求小乐乐把这个序列去重后按从小到大排序。但是老师给出的序列太长了,小乐乐没办法耐心的去重并排序,请你帮助他。

输入描述:

输出描述:

示例1

输入:

输出:

示例2

输入:

输出:

参考代码:

#include <stdio.h>

int main()
{
    int n = 0;
    scanf("%d", &n);
    int k = 0;
    int arr[100000] = { 0 };
    int i = 0;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &k);
        arr[k] = k;
    }
    for (i = 0; i < 100000; i++)
    {
        if (arr[i] != 0)
        {
            printf("%d ", arr[i]);
        }
    }
    return 0;
}
举报

相关推荐

0 条评论