算法竞赛入门【码蹄集新手村600题】(MT1140-1160)C语言(一)

简介: 算法竞赛入门【码蹄集新手村600题】(MT1140-1160)C语言

码蹄集网站地址:https://www.matiji.net/exam/ojquestionlist


目录

MT1141 数字3

(1)题目

给您一个整数输入N,如果它是整数13的和或差(13+13, 13-13,13-13-13+13+13…),输出YES,否则输出NO。


格式

输入格式:
输入为整型
输出格式:
输出为YES或者NO

样例1

输入:
14
输出:
NO

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    if (n % 13 == 0 || n == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1142 整除的总数

(1)题目

输入正整数N和M,其中N<=M。求区间[N,M]中可被K整除的总数。


格式

输入格式:
输入正整数N,M和K,空格分隔。
输出格式:
输出整型

样例1

输入:
6 15 3
输出:
4

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int a, b, x;
    scanf("%d %d %d", &a, &b, &x);
    int count = 0;
    for (int i=a;i<=b;i++)
    {
        if (i % x == 0 || i == 0)
        {
            count++;
        }
    }
    printf("%d", count);
    return 0; 
}

MT1143 沙哈德数

(1)题目

如果一个数字可被其数字之和整除,则称该数字为Harshad哈沙德数,输入一个正整数,判断他是不是哈沙德数,输出YES或者NO。


格式

输入格式: 
输入整型
输出格式: 
输出YES或者NO

样例1

输入格式: 
156
输出格式:
 YES

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int n;
    scanf("%d", &n);
    int temp = n, sum = 0;
    while (temp)
    {
        sum += temp % 10;
        temp /= 10;
    }
    if (n % sum == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1144 整除

(1)题目

输入正整数N,检查它是否可以被其数字之和整除,输出YES或者NO。不考虑不合理的输入等特殊情况。


格式

输入格式:
输入正整数N
输出格式:
输出YES或者NO

样例1

输入:
18
输出:
YES

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int N, sum = 0;
    scanf("%d", &N);
    int temp = N;
    while (temp)
    {
        sum += temp % 10;
        temp /= 10;
    }
    if (N % sum == 0)
    {
        printf("YES");
    }
    else
    {
        printf("NO");
    }
    return 0; 
}

MT1145 全部整除

(1)题目

输入正整数N,找到一个最小的整数K,可以被1到N的每个数整除。


格式

输入格式:
 输入整型
输出格式: 
输出整型

样例1

输入格式:
6
输出格式: 
60

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int N, flag;
    scanf("%d", &N);
    for (int i=N;;i++)
    {
        flag = 1;
        for (int j=1;j<=N;j++)
        {
            if (i % j != 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag == 1)
        {
            printf("%d", i);
            break;
        }
    }
    return 0; 
}

MT1146 孙子歌诀

(1)题目

存在一个数x,除以3余2,除以5余3,除以7余2,然后求这个数。明朝数学家程大位将解法编成易于上口的《孙子歌诀》:

三人同行七十稀,

五树梅花廿一支,

七子团圆正半月,

除百零五使得知。

3人同行“70” 稀,3的余数乘以70,5树梅花“21”支,5的余数乘以21,7子团圆正半月(15天),7的余数乘以15。最后加在一起除以105看余数。


格式

输入格式:
输出格式:
输出整型

样例1

输入:
输出:
23

(2)参考代码

#include<stdio.h>
int main() 
{ 
    int x1, x2, x3;
    x1 = 2 * 70;
    x2 = 3 * 21;
    x3 = 2 * 15;
    printf("%d", (x1 + x2 + x3) % 105);
    return 0; 
}
目录
相关文章
|
2月前
|
搜索推荐 C语言
【排序算法】快速排序升级版--三路快排详解 + 实现(c语言)
本文介绍了快速排序的升级版——三路快排。传统快速排序在处理大量相同元素时效率较低,而三路快排通过将数组分为三部分(小于、等于、大于基准值)来优化这一问题。文章详细讲解了三路快排的实现步骤,并提供了完整的代码示例。
62 4
|
3月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
75 2
|
1月前
|
存储 NoSQL 编译器
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
指针是一个变量,它存储另一个变量的内存地址。换句话说,指针“指向”存储在内存中的某个数据。
86 3
【C语言】指针的神秘探险:从入门到精通的奇幻之旅 !
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
149 7
|
2月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
123 8
|
2月前
|
机器学习/深度学习 算法 Python
机器学习入门:理解并实现K-近邻算法
机器学习入门:理解并实现K-近邻算法
41 0
|
3月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
3月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
3月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题