C/C++每日一练(20230426) 不喜欢带钱的小C、数组排序、超级素数

简介: C/C++每日一练(20230426) 不喜欢带钱的小C、数组排序、超级素数

1. 不喜欢带钱的小C

小C不喜欢带钱,有一次竟被他碰上了一家不能使用移动支付(也不能找钱)的神秘商店。请问小C至少准备多少张RMB才能恰好支付n元。RMB的面额有100元,50元,20元,10元,5元,1元。

输入格式:

输入一个整数n

输出格式:

最少带几张。

样例输入1:

50

样例输出1:

1

约定:

1<=n<=100

以下程序实现了这一功能,请你填补空白处内容:

```c++
#include 
using namespace std;
int solve(int tar, int * meta, int metan, int * seed = NULL, int seedn = 0)
{
    if (tar == 0)
    {
        return seedn;
    }
    int min = -1;
    int m;
    int * seed1 = new int[seedn + 1];
    if (seed)
        memcpy(seed1, seed, sizeof(int) * seedn);
    for (int i = 0; i < metan; i++)
    {
        if (meta[i] <= tar)
        {
            seed1[seedn] = meta[i];
            _____________________;
            if (m != -1 && (min == -1 || min > m))
                min = m;
            break;
        }
    }
    delete[] seed1;
    return min;
}
int main()
{
    int arr[] = { 100, 50, 20, 10, 5, 1 };
    int n = 6;
    int total;
    cin >> total;
    int result = solve(total, arr, n);
    cout << result << endl;
    return 0;
}
```

出处:

https://edu.csdn.net/practice/26559384

代码:

#include <iostream>
using namespace std;
int solve(int tar, int * meta, int metan, int * seed = NULL, int seedn = 0)
{
    if (tar == 0)
    {
        return seedn;
    }
    int min = -1;
    int m;
    int * seed1 = new int[seedn + 1];
    if (seed)
        memcpy(seed1, seed, sizeof(int) * seedn);
    for (int i = 0; i < metan; i++)
    {
        if (meta[i] <= tar)
        {
            seed1[seedn] = meta[i];
            m = solve(tar - meta[i], meta, metan, seed1, seedn + 1);
            if (m != -1 && (min == -1 || min > m))
                min = m;
            break;
        }
    }
    delete[] seed1;
    return min;
}
int main()
{
    int arr[] = { 100, 50, 20, 10, 5, 1 };
    int n = 6;
    int total;
    cin >> total;
    int result = solve(total, arr, n);
    cout << result << endl;
    return 0;
}

输出:


2. 数组排序

定义一个包含5个整型元素(1, 5, 3, 92, 6)的数组,将数组元素按照由 小到大的顺序输出

出处:

https://edu.csdn.net/practice/26559385

代码:

#include <stdio.h>
#define N (int)5
int main()
{
    int a[N] = {1,5,3,92,6};
    int tmp;
    for (int i = 0; i < N-1; i++)
    {
        for (int j = 0;j < N-1-i;j++)
        {
            if (a[j] > a[j+1])
            {
                tmp = a[j];
                a[j] = a[j+1];
                a[j+1] = tmp;
            }
        }
    }
    for (int i = 0; i < N; i++)
    {
        printf("%d ",a[i]);
    }
    return 0;
}

输出:


3. 超级素数

一个n位超级素数是指一个n位正整数,它的前1位,前2位,......,前n位均为素数,例如,733是个3位超级素数,因为7,73,733均为素数。输出全部的3位数超级素数。 输入 输出 全部的3位数超级素数,每行一个数

出处:

https://edu.csdn.net/practice/26559386

代码:

#include <stdio.h>
int isprime(int x)
{
    if (x == 0 || x == 1) return 0;
    for (int i = 2; i <= x / 2; i++)
        if (!(x % i)) return 0;
    return 1;
}
int isallprime(int x)
{
    do
    {
        if (!isprime(x)) return 0;
        x /= 10;
    }
    while (x > 0);
    return 1;
}
int main()
{
    for (int i = 111; i <= 1000; i++)
        if (isallprime(i)) printf("%d\n", i);
}

输出:

233

239

293

311

313

317

373

379

593

599

719

733

739

797


🌟 每日一练刷题专栏 🌟

持续,努力奋斗做强刷题搬运工!

👍 点赞,你的认可是我坚持的动力!

🌟 收藏,你的青睐是我努力的方向!

评论,你的意见是我进步的财富!  

主页:https://hannyang.blog.csdn.net/


目录
相关文章
|
1月前
|
搜索推荐 C++
【C++数据结构——内排序】快速排序(头歌实践教学平台习题)【合集】
快速排序是一种高效的排序算法,基于分治策略。它的主要思想是通过选择一个基准元素(pivot),将数组划分成两部分。一部分的元素都小于等于基准元素,另一部分的元素都大于等于基准元素。然后对这两部分分别进行排序,最终使整个数组有序。(第一行是元素个数,第二行是待排序的原始关键字数据。本关任务:实现快速排序算法。开始你的任务吧,祝你成功!
41 7
|
1月前
|
存储 人工智能 算法
【C++数据结构——内排序】二路归并排序(头歌实践教学平台习题)【合集】
本关任务是实现二路归并算法,即将两个有序数组合并为一个有序数组。主要内容包括: - **任务描述**:实现二路归并算法。 - **相关知识**: - 二路归并算法的基本概念。 - 算法步骤:通过比较两个有序数组的元素,依次将较小的元素放入新数组中。 - 代码示例(以 C++ 为例)。 - 时间复杂度为 O(m+n),空间复杂度为 O(m+n)。 - **测试说明**:平台会对你编写的代码进行测试,提供输入和输出示例。 - **通关代码**:提供了完整的 C++ 实现代码。 - **测试结果**:展示代码运行后的排序结果。 开始你的任务吧,祝你成功!
36 10
|
1月前
|
搜索推荐 算法 数据处理
【C++数据结构——内排序】希尔排序(头歌实践教学平台习题)【合集】
本文介绍了希尔排序算法的实现及相关知识。主要内容包括: - **任务描述**:实现希尔排序算法。 - **相关知识**: - 排序算法基础概念,如稳定性。 - 插入排序的基本思想和步骤。 - 间隔序列(增量序列)的概念及其在希尔排序中的应用。 - 算法的时间复杂度和空间复杂度分析。 - 代码实现技巧,如循环嵌套和索引计算。 - **测试说明**:提供了测试输入和输出示例,帮助验证代码正确性。 - **我的通关代码**:给出了完整的C++代码实现。 - **测试结果**:展示了代码运行的测试结果。 通过这些内容,读者可以全面了解希尔排序的原理和实现方法。
59 10
|
1月前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
41 5
|
5月前
|
搜索推荐 编译器 C语言
【C++核心】特殊的元素集合-数组与字符串详解
这篇文章详细讲解了C++中数组和字符串的基本概念、操作和应用,包括一维数组、二维数组的定义和使用,以及C风格字符串和C++字符串类的对比。
116 4
|
5月前
|
C++
C++(十一)对象数组
本文介绍了C++中对象数组的使用方法及其注意事项。通过示例展示了如何定义和初始化对象数组,并解释了栈对象数组与堆对象数组在初始化时的区别。重点强调了构造器设计时应考虑无参构造器的重要性,以及在需要进一步初始化的情况下采用二段式初始化策略的应用场景。
|
6月前
|
C++ 索引
C++数组、vector求最大值最小值及其下标
C++数组、vector求最大值最小值及其下标
223 0
|
6月前
|
算法 C++
c++学习笔记04 数组
这篇文章是C++学习笔记4,主题是数组。
56 4
|
6月前
|
安全 编译器 C语言
C++入门-数组
C++入门-数组
|
7月前
|
C++ 索引 运维
开发与运维数组问题之在C++中数组名和指针是等价如何解决
开发与运维数组问题之在C++中数组名和指针是等价如何解决
47 6