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

文章包含三个编程题目,分别是关于最小面额人民币组合、数组排序以及3位超级素数的查找。每个题目都提供了C++的解题代码,用于锻炼编程和算法思维。

目录

1. 不喜欢带钱的小C  🌟🌟

2. 数组排序  ※

3. 超级素数  ※

🌟 每日一练刷题专栏 🌟

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏


1. 不喜欢带钱的小C

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

输入格式:

输入一个整数n

输出格式:

最少带几张。

样例输入1:

50

样例输出1:

1

约定:

1<=n<=100

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

```c++
#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];
            _____________________;
            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/

Golang每日一练 专栏

Python每日一练 专栏

C/C++每日一练 专栏

Java每日一练 专栏

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hann Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值