MT1421-MT1430 码题集 (c 语言详解)

news2024/11/26 12:19:41

目录

        MT1421·异或

        MT1422·总位数

        MT1423·被3整除

        MT1424·卡特兰序列

        MT1425·小码哥的序列

        MT1426·普洛尼克数

        MT1427·素数序列

        MT1428·最小素数因子

        MT1429·最小正整数

        MT1430·回文数组


MT1421·异或

给定一个由N(<1000)个整数组成的数组,把数组元素任意两两进行异或,统计数组中异或的结果为奇数的元素有几对,输出对数。

格式

输入格式:第一行输入数组长度N,第二行输入数组元素,整型,空格分隔。

输出格式:输出整型

样例 1

输入:3   

           1 2 3

输出:2

 c 语言实现代码

方法一:

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);
    int array[100];
    for (int i = 0; i < N; i++) {
        scanf("%d", &array[i]);
    }
    // method one:

    int count_odd = 0;
    int count_even = 0;
    for (int i = 0; i < N; i++) {
        if (array[i] % 2 == 0) {
            count_even++;
         } else {
            count_odd++;
         }
     }
    int pairs = count_odd * count_even;
    printf("%d", pairs);

    return 0;
}

方法二:

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);
    int array[100];
    for (int i = 0; i < N; i++) {
        scanf("%d", &array[i]);
    }
    int count = 0;
    // 计算异或结果为奇数的对数
    for (int i = 0; i < N - 1; i++) {
        for (int j = i + 1; j < N; j++) {
            if ((array[i] ^ array[j]) % 2 != 0) {
                count++;
            }
        }
    }
    printf("%d", count);
    return 0;
}

MT1422·总位数

计算数组中N个元素所有数字的总位数。所有元素均为非负数。

格式

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

输出格式:输出整型

样例 1

输入:14

           1 2 3 4 5 6 7 8 9 10 11 12 13 14

输出:19

c 语言实现代码

#include <stdio.h>

int main() {
    int N;
    scanf("%d", &N);
    int array[N];

    // 输入数组元素
    for (int i = 0; i < N; i++) {
        scanf("%d", &array[i]);
    }

    int total_digits = 0;
    for (int i = 0; i < N; i++) {
        int num = array[i];
        if (num == 0) {
            total_digits++;
        }
        while (num > 0) {
            total_digits++;
            num /= 10;
        }
    }

    // 输出结果
    printf("%d\n", total_digits);
    return 0;
}

MT1423·被3整除

c 语言实现代码

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);
    int array[N];
    for (int i = 0; i < N; i++) {
        scanf("%d", &array[i]);
    }

    int total_digits_sum = 0;
    for (int i = 0; i < N; i++) {
        int num = array[i];
        while (num > 0) {
            total_digits_sum += num % 10; // 取出最后一位数字并加到总和
            num /= 10;                    // 去掉最后一位数字
        }
    }
    if (total_digits_sum % 3 == 0) {
        printf("YES");
    } else {
        printf("NO");
    }

    return 0;
}

MT1424·卡特兰序列

c 语言实现代码

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);
    if (N > 20)
        return 0;
    int catalan[N + 1];
    catalan[0] = 1;
    // 使用动态规划计算卡特兰数
    for (int i = 1; i <= N; i++) {
        catalan[i] = 0;
        for (int j = 0; j < i; j++) {
            catalan[i] += catalan[j] * catalan[i - 1 - j];
        }
    }

    printf("%d", catalan[N]);

    return 0;
}

MT1425·小码哥的序列

 

c 语言实现代码

#include <stdio.h>

int main() {
    int N;
    scanf("%d", &N);

    // 如果N小于1,直接返回
    if (N < 1) {
        printf("N必须大于或等于1。\n");
        return 1;
    }

    // 序列的前几项
    int sequence[10000]; // 假设最大为100项
    sequence[0] = 1;   // 第1项
    sequence[1] = 2;   // 第2项
    sequence[2] = 5;   // 第2项

    // 根据规律生成序列,直到第N项
    for (int i = 3; i < N; i++) {
        sequence[i] = sequence[i - 1] + sequence[i - 2] + sequence[i - 3];
    }

    // 输出第N项
    printf("%d\n", sequence[N - 1]);
    return 0;
}

MT1426·普洛尼克数

c 语言实现代码

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);

    for (int i = 0;; i++) {
        int plonikNumber = i * (i + 1);
        if (plonikNumber > N) {
            break;
        }
        printf("%d ",plonikNumber);
    }

    return 0;
}

MT1427·素数序列

c 语言实现代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SIZE 10000

int isPrimeDigit(int num) {
    while (num > 0) {
        int digit = num % 10;
        if (digit != 2 && digit != 3 && digit != 5 && digit != 7) {
            return 0;
        }
        num /= 10;
    }
    return 1;
}

int main() {
    int N;
    scanf("%d", &N);
    int count = 0;
    int number = 1;

    while (count < N) {
        if (isPrimeDigit(number)) {
            count++;
        }
        number++; /*  */
    }

    printf("%d", number - 1);

    return 0;
}

MT1428·最小素数因子

c 语言实现代码

#include <stdio.h>
int main() {
    int N;
    scanf("%d", &N);
    if (N <= 0 || N > 1000)
        return 0;
    int minmum_prime_factor[1001];
    // 初始化数组
    for (int i = 1; i <= N; i++) {
        if (i == 1) {
            minmum_prime_factor[i] = 1;
        }
        minmum_prime_factor[i] = i;
    }

    // 计算最小素数因子
    for (int i = 2; i <= N; i++) {
        if (minmum_prime_factor[i] == i) {
            for (int j = 2 * i; j <= N; j += i) {
                if (minmum_prime_factor[j] == j) {
                    minmum_prime_factor[j] = i;
                }
            }
        }
    }

    for (int i = 1; i <= N; i++) {
        printf("%d ", minmum_prime_factor[i]);
    }

    return 0;
}

MT1429·最小正整数

c 语言实现代码

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

int main() {
    int N;
    scanf("%d", &N);

    int arr[N];
    for (int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }
    //  method 1:
    // // 计算数组的乘积 P
    // double product = 1;
    // for (int i = 0; i < N; i++) {
    //     product *= arr[i];
    // }

    // // 找到最小的 K,使得 K^N > product
    // int K = 1;
    // while (pow(K, N) <= product) {
    //     K++;
    // }

    // printf("%d\n", K);

    //  method 2:
    double log_product = 0;
    for (int i = 0; i < N; i++) {
        log_product += log(arr[i]);
    }

    // 计算 k 的下界
    double log_k = log_product / N;
    int k = (int)ceil(exp(log_k));

    while (pow(k, N) <= exp(log_product)) {
        k++;
    }
    printf("%d", k);

    return 0;
}

MT1430·回文数组

c 语言实现代码

#include <stdio.h>
#include <string.h>

int isPalindrome(int num) {
    char str[10];
    sprintf(str, "%d", num);
    int len = strlen(str);
    for (int i = 0; i < len / 2; i++) {
        if (str[i] != str[len - i - 1]) {
            return 0; // 不是回文数
        }
    }
    return 1; // 是回文数
}
int main() {
    int N;
    scanf("%d", &N);
    int count = 0; // 计数
    for (int i = 1; i < N; i++) {
        if (isPalindrome(i)) {
            count++;
        }
    }
    printf("%d", count);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2232065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

游游的游戏大礼包

游游的游戏大礼包 import java.util.*; public class Main {public static void main(String[] args) {Scanner in new Scanner(System.in);long n in.nextInt();long m in.nextInt();long a in.nextInt();long b in.nextInt();long ret 0;for(long x 0; x < Math.…

SpringBoot框架:作业管理系统构建之道

摘 要 使用旧方法对作业管理信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在作业管理信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的作业管理系统有管…

Python小游戏19——滑雪小游戏

运行效果 python代码 import pygame import random # 初始化Pygame pygame.init() # 设置屏幕尺寸 screen_width 800 screen_height 600 screen pygame.display.set_mode((screen_width, screen_height)) pygame.display.set_caption("滑雪小游戏") # 定义颜色 WH…

自定义规则配置教程

大家在使用waf的时候&#xff0c;因为业务特殊性和waf的严格校验&#xff0c;有时会产生误报&#xff0c;阻拦合法流量。 这个时候&#xff0c;只能通过自定义规则进行补充&#xff0c;选择加白名单或者黑名单。 很多人会说配置黑白名单失效了&#xff0c;其实95%以上都是自己…

HarmonyOS ArkTS Web组件jsbridge

1. HarmonyOS ArkTS Web组件jsbridge 1.1. Web组件引入和调用JS库 关于ts可以调用JS库&#xff0c;可以使用以下几种方式&#xff1a;文档中心&#xff1a;https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-arkweb-kit-V5 1.1.1. 鸿蒙系统H5 JSBridge的…

C++笔试题之实现一个定时器

一.定时器&#xff08;timer&#xff09;的需求 1.执行定时任务的时&#xff0c;主线程不阻塞&#xff0c;所以timer必须至少持有一个线程用于执行定时任务 2.考虑到timer线程资源的合理利用&#xff0c;一个timer需要能够管理多个定时任务&#xff0c;所以timer要支持增删任务…

DICOM标准:CR图像模块属性详解——计算放射线照相术(CR)及其在DICOM中的表示

目录 CR图像及其在DICOM中的表示 1 计算放射线照相术 1.1 CR序列组件 1.1 -- CR 序列模块属性 1.2 CR 图像模块 表1.2 -- CR 图像模块属性 结论 CR图像及其在DICOM中的表示 计算放射线照相术&#xff08;Computed Radiography, CR&#xff09;是一种利用计算机技术对传统…

[Prometheus学习笔记]从架构到案例,一站式教程

文章目录 Prometheus 优势Prometheus 的组件、架构Prometheus Server 直接从监控目标中或者间接通过推送网关来拉取监控指标&#xff0c;它在本地存储所有抓取到的样本数据&#xff0c;并对此数据执行一系列规则&#xff0c;以汇总和记录现有数据的新时间序列或生成告警。可以通…

Javaweb梳理3——SQL概述+DDL语句1

Javaweb梳理3——SQL概述DDL语句1 Javaweb梳理3——SQL概述DDL语句13.1 SQL简介3.2 通用语法3.3 SQL分类3.4 DDL:操作数据库3.4.1 查询数据库3.4.2 创建数据库3.4.3 删除数据库3.4.4 使用数据库 Javaweb梳理3——SQL概述DDL语句1 3.1 SQL简介 英文&#xff1a;Structured Que…

HarmonyOS Next星河版笔记--界面开发(2)

ArkUI-界面开发 位置&#xff1a;在build(){}中去编写代码 //以前学基础 ->写代码的位置&#xff08;页面顶部&#xff09; Entry Component struct Index {State message: string Hello World; //构建 -> 页面build() {//行//列RelativeContainer() {//文本 函数名&a…

使用PostgreSQL进行高效数据管理

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 使用PostgreSQL进行高效数据管理 PostgreSQL简介 安装PostgreSQL 在Ubuntu上安装PostgreSQL 在CentOS上安装PostgreSQL 在macOS上…

vue3学习记录-单文件组件 CSS 功能

vue3学习记录-单文件组件 CSS 功能 1.组件作用域 CSS1.1为什么要用到样式穿透&#xff08;&#xff1a;deep&#xff08;&#xff09;&#xff09;1.2 插槽选择器:slotted(div)1.3 全局选择器:global 2.CSS Modules2.1 基本用法2.2 自定义注入名称2.3 与组合式 API 一同使用 3.…

3.1 快速启动Flink集群

文章目录 1. 环境配置2. 本地启动3. 集群启动4. 向集群提交作业4.1 提交作业概述4.2 添加打包插件4.3 将项目打包4.4 在Web UI上提交作业4.5 命令行提交作业 在本实战中&#xff0c;我们将快速启动Apache Flink 1.13.0集群&#xff0c;并在Hadoop集群环境中提交作业。首先&…

贪心算法---java---黑马

贪心算法 1)Greedy algorithm 称之为贪心算法或者贪婪算法&#xff0c;核心思想是 将寻找最优解的问题分为若干个步骤每一步骤都采用贪心原则&#xff0c;选取当前最优解因为未考虑所有可能&#xff0c;局部最优的堆叠不一定得到最终解最优 贪心算法例子 Dijkstra while …

产品宣传册如何分享到微信朋友圈

在这个互联网高速发展的时代&#xff0c;微信已经成为我们日常生活中不可或缺的社交工具。作为商家或个人&#xff0c;如何将产品宣传册分享到微信朋友圈&#xff0c;提高产品知名度和影响力&#xff0c;成为了一项至关重要的技能。 那要怎么操作呢&#xff1f; 1. 实用工具&a…

轻松入门WordPress:在Ubuntu上搭建本地网站并配置公网访问地址

文章目录 前言1. 安装WordPress2. 创建WordPress数据库3. 安装相对URL插件4. 安装内网穿透发布网站4.1 命令行方式&#xff1a;4.2. 配置wordpress公网地址 5. 配置WordPress固定公网地址 前言 本文主要介绍如何在Linux Ubuntu系统上使用WordPress搭建一个本地网站&#xff0c…

ubuntu编译内核安装启动

下载源码 apt update apt install linux-source # /usr/src/linux-source-5.4.0/linux-source-5.4.0.tar.bz2 下载源码 tar -jxvf linux-source-5.4.0.tar.bz2 # /usr/src/linux-source-5.4.0 解压源码 安装依赖 sudo apt -y install build-essential sudo apt -y i…

多个锚点定位时的锚点优选方法(附公式和MATLAB代码讲解)

在多锚点定位系统中,锚点的选择对定位精度有重要影响。以下是几种常见的锚点选优方法,配合相应的公式和MATLAB代码示例进行详细分析。 文章目录 基于几何分布的选择基于距离最小化的选择加权优化选择总结基于几何分布的选择 方法描述: 锚点的几何分布影响定位的可辨识性。选…

DICOM标准:US超声模块属性详解——超声医学的DICOM标准解析

引言 数字成像和通信在医学领域中的应用极为广泛&#xff0c;其中DICOM&#xff08;数字成像和通信医学&#xff09;标准对于确保不同设备和系统之间的兼容性和互操作性至关重要。本文将详细介绍DICOM标准中关于超声医学&#xff08;Ultrasound, US&#xff09;的部分&#xff…

华为鲲鹏一体机 安装笔记

安装驱动 在这个链接 社区版-固件与驱动-昇腾社区 1 下载NPU固件 需要注册登录&#xff0c;否则报错&#xff1a; ERR_NO:0x0091;ERR_DES:HwHiAiUser not exists! Please add HwHi AiUser 准备软件包-软件安装-CANN…