首页 > 其他分享 >MT1371-MT1380 码题集 (c 语言详解)

MT1371-MT1380 码题集 (c 语言详解)

时间:2024-10-24 12:48:46浏览次数:8  
标签:return int ++ MT1371 printf 码题 include MT1380 op

目录

        MT1371·所有路径

        MT1372·矩阵清零

        MT1373·亲和数 

        MT1374·Pronic数 

        MT1375·4和7的序列

        MT1376·小码哥的数学

        MT1377·模乘逆元

        MT1378·一堆花甲 

        MT1379·operate函数

        MT1380·mymath函数


MT1371·所有路径

题目描述:输入整型M和N(均大于2小于100),用递归函数计算MxN矩阵从左上角到右下角的所有可能路径(每一步路径只能往下、往右走)。

格式

输入格式:输入整型M和N,空格分隔。

输出格式:输出整型

样例 1 

输入:3 3

输出:6

 C 语言实现代码

#include <stdio.h>

long a[100][100];

long allPath(int m, int n) {
    if (m == 1 || n == 1)
        return 1;
    if (a[m][n] != 0)
        return a[m][n];
    else
        return a[m][n] = allPath(m - 1, n) + allPath(m, n - 1);
}

int main() {
    int M, N;
    if (M < 2 && M > 100 || N < 2 && N > 100)
        return 0;

    scanf("%d %d", &M, &N);
    printf("%ld",allPath(M, N));

    return 0;
}

MT1372·矩阵清零

题目描述:设计一个函数,将NXN的矩阵所有元素替换成0。

格式

输入格式:第一行输入N(<100),第二行输入数组元素,整型,空格分隔。

输出格式:输出整型矩阵,空格分隔。

样例 1

 输入:3

            1 2 3 4 5 6 7 8 9

输出:0 0 0

           0 0 0

           0 0 0

c 语言实现代码 

#include <stdio.h>
#define MAX_SIZE 100
void replaceWithZeros(int matrix[MAX_SIZE][MAX_SIZE], int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            matrix[i][j] = 0;
        }
    }
}
void printMatrix(int matrix[MAX_SIZE][MAX_SIZE], int n) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int n;
    int matrix[MAX_SIZE][MAX_SIZE];
    scanf("%d", &n);
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    replaceWithZeros(matrix, n);
    printMatrix(matrix, n);
    return 0;
}

MT1373·亲和数 

c 语言实现代码 

#include <stdio.h>
// 真约数之和
int sumOfProperDivisors(int num) {
    int sum = 0;
    for (int i = 1; i <= num / 2; i++) {
        if (num % i == 0) {
            sum += i;
        }
    }
    return sum;
}
// 进行判断
void amicable_number(int num_1, int num_2) {
    if (sumOfProperDivisors(num_1) == num_2 &&
        sumOfProperDivisors(num_2) == num_1) {
        printf("YES");
    } else {
        printf("NO");
    }
}

int main() {
    int num_1, num_2;
    scanf("%d %d", &num_1, &num_2);
    amicable_number(num_1, num_2);
    return 0;
}

MT1374·Pronic数 

 

c 语言代码实现

#include <stdio.h>
int PronicNumber(int x) {
    for (int i = 0; i * (i + 1) <= x; i++) {
        if (i * (i + 1) == x) {
            return 1; // is PronicNumber
        }
    }
    return 0;
}

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

MT1375·4和7的序列

    

 c 语言代码实现

#include <math.h>
#include <stdio.h>
long long getLuckyNumber(int N) {
    int length = 0;
    int count = 0;

    while (count < N) {
        length++;
        count += pow(2, length); // 每位数组合为 2^length
    }

    count -= pow(2, length);
    int position = N - count - 1;

    // 生成对应的数字
    long long luckyNumber = 0;
    for (int i = 0; i < length; i++) {
        if (position & (1 << (length - 1 - i))) {
            luckyNumber = luckyNumber * 10 + 7;
        } else {
            luckyNumber = luckyNumber * 10 + 4;
        }
    }
    return luckyNumber;
}

int main() {
    int N;
    scanf("%d", &N);
    long long result = getLuckyNumber(N);
    printf("%lld", result);
    return 0;
}

MT1376·小码哥的数学

 

c 语言代码实现

#include <stdio.h>

int smartMath(int a, int b) {
    int sum = a + b;
    return sum % 100; // 只保留最后两位数
}

int main() {
    int n;
    scanf("%d", &n);
    int a, b;
    while (n > 0) {
        scanf("%d %d", &a, &b);
        printf("%d\n", smartMath(a, b));
        n--;
    }
    return 0;
}

MT1377·模乘逆元

c 语言代码实现

#include <stdio.h>
// 扩展欧几里得算法
int extendedGCD(int a, int b, int *x, int *y) {
    if (b == 0) {
        *x = 1;
        *y = 0;
        return a;
    }
    int x1, y1;
    int gcd = extendedGCD(b, a % b, &x1, &y1);
    *x = y1;
    *y = x1 - (a / b) * y1;
    return gcd;
}

// 计算模乘逆元
int modInverse(int a, int m) {
    int x, y;
    int gcd = extendedGCD(a, m, &x, &y);
    if (gcd != 1) {
        return -1;
    } else {
        return (x % m + m) % m;
    }
}

int main() {
    int a, m;
    scanf("%d %d", &a, &m);
    int inverse = modInverse(a, m);
    printf("%d", inverse);

    return 0;
}

MT1378·一堆花甲 

c 语言代码实现

#include <stdio.h>

int findMinimumClams() {
    int clams = 1; // 从 1 开始尝试
    while (1) {
        int temp = clams; // 临时变量用于计算

        // 逆向推理每只海豚的操作
        int valid = 1; // 标记是否有效
        for (int i = 0; i < 5; i++) {
            if ((temp - 1) % 5 != 0) {
                valid = 0; // 如果不满足条件 标记为无效
                break;
            }
            temp = (temp - 1) * 4 / 5;
        }

        if (valid) {
            return clams;
        }
        clams++;
    }
}

int main() {
    int minimumClams = findMinimumClams();
    printf("%d", minimumClams);
    return 0;
}

MT1379·operate函数

c 语言代码实现

#include <stdio.h>

// operate 函数实现加法和减法
int operate(int a, int b, char op) {
    switch (op) {
        case '+':
            return a + b; // 加法
        case '-':
            return a - b; // 减法
        default:
            return 0; // 返回0或其他值表示错误
    }
}

int main() {
    int a, b;
    char op;

    // 输入格式为 a op b,例如 3+5
    scanf("%d%c%d", &a, &op, &b); // 读取整数、操作符和整数

    // 调用 operate 函数并输出结果
    int result = operate(a, b, op);
    printf("%d\n", result);

    return 0;
}

MT1380·mymath函数

 

#include <stdio.h>

// mymath 函数实现乘法、除法和求余
double mymath(int a, int b, char op) {
    switch (op) {
    case '*':
        return a * b; // 乘法,返回整型
    case '/':
        if (b != 0)
            return (double)a / (double)b; // 除法,返回浮点型
        else
            return 0; // 除以零的情况
    case '%':
        return a % b; // 求余,返回整型
    default:
        return 0; // 不支持的操作
    }
}

int main() {
    int a, b;
    char op;

    // 输入格式为 a op b,例如 3/5
    scanf("%d%c%d", &a, &op, &b); // 读取整数、操作符和整数

    // 调用 mymath 函数
    double result = mymath(a, b, op);

    // 根据操作符输出结果
    if (op == '/') {
        if (b == 0) {
            printf("Error: Division by zero.\n");
        } else {
            printf("%.6lf\n", result); // 除法输出实型
        }
    } else {
        printf("%.0lf\n", result); // 乘法和求余输出整型
    }

    return 0;
}

标签:return,int,++,MT1371,printf,码题,include,MT1380,op
From: https://blog.csdn.net/xinfanyyds/article/details/143167188

相关文章

  • MT1351-MT1360 码题集 (c 语言详解)
    MT1351·用函数判断素数c语言代码实现#include<stdio.h>intisPrime(intnum){if(num<=1)return0;for(inti=2;i*i<=num;i++){if(num%i==0){return0;}}return1;}intmain(){......
  • MT1311-MT1320 码题集 (c 语言详解)
    MT1311·组数c语言实现代码#include<stdio.h>intmain(){intcount=0;//用来记录个数//遍历所有可能的三位数//外层循环:遍历第一位范围是1~9确保第一位不能为0for(inti=1;i<=9;i++){//中层循环:遍历第二位范围是0......
  • MT1301-MT1310 码题集 (c 语言详解)
    MT1301·1的补码c语言代码实现#include<stdio.h>intmain(){longn=0;longb=0;scanf("%ld",&n);inti=0;//while(b<n){b=b*16+0xf;}printf("%ld",b-n);return......
  • P1928 外星密码题解
    初看这题时,感觉就是一个简简单单的递归,便有了以下代码:#include <bits/stdc++.h>using namespace std;string re(){    string s="",s1="";    char c;    int n;    while(cin>>c){        if(c=='['){            cin>>n;......
  • 面试速通-SQL编码题
    〇、前话SQL题是数据相关的面试无可避免的小BOSS,虽然不同公司面试出题会披上不同的马甲,侧重各异,但总结起来题型就是那4、5种。下面让我们花上几分钟一起来通关它吧!一、连续日期计算1,例题表字段:用户ID,账户余额,系统余额日期。求出余额大于1000的用户的最大连续天数。2,解题要......
  • 【码题集】习题
    目录史莱姆融合松鼠接松果 新月轩就餐 史莱姆融合根据题意就是一道集合合并的题,所以要用并查集,不过最后我们要输出整个序列,所以要在合并的时候维护一个链表,以便最终合并成一个大集合的时候,输出整个链表就是答案。不过这里有一点要注意,就是我们在更新链表的时候是把......
  • 代码题答案
    importjava.util.Random;publicclassMain{publicstaticvoidcharCode(){StringBuildersb=newStringBuilder();Randomrandom=newRandom();for(inti=0;i<5;i++){intrandomCharType=random.nextlnt(2);/随机选择大小写if(randomCharType==0){/......
  • 【408精华知识】史上最全的数据结构代码题总结!三万字长文!!!
    关于数据结构代码题,可以说是让很多同学感到头疼了,书上的代码太繁琐、网上的总结不全面让大家对代码题感到云里雾里,那么这篇文章可能会给大家带来一点启发,因为我自己也是深受代码题的折磨,所以一直想写一篇有关它的总结,希望能够做到全面、简洁,让大家用最快的速度记住代码书......
  • 【MISC】一道假的二维码题目学习zxing库[python解读二维码]
    引言这道题目的考点是文件格式、双图差值、Ook!编码、PRC等,我做这题的重点是复习巩固python读取二维码zxing库的使用。例题┌───────────────────────────────────────────────────┐│马老师的秘籍......
  • 深度学习手撕代码题
    目录:目录PyTorch实现注意力机制、多头注意力与自注意力Numpy广播机制实现矩阵间L2距离的计算Conv2D卷积的Python和C++实现Numpy实现bbox_iou的计算Numpy实现FocallossPython实现nms、softnmsPython实现BN批量归一化PyTorch卷积与BatchNorm的融合分割网络损失函数......