2024华为od机试e卷【生成回文素数】C语言 实现

目录

题目

思路

Code


题目

题目描述
求出大于或等于 N 的最小回文素数。
回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。
例如,2,3,5,7,11 以及 13 是素数。
回顾一下,如果一个数从左往石读与从右往左读是一样的,那么这个数是 回文数Q例如,12321 是回文数。


示例 1:
输入:6
输出:7
示例 2:
输入:8
输出:11

思路

1:写了半天,发现是leetcode上的原题。。。。

2:这里直接贴上大佬的思路吧,感觉考试的时候,可能写个暴力遍历就很不错了,小伙伴实测暴力遍历,只需要实现判断素数的方法和判断回文数的方法即可,也能过一部分用例,拿到一部分的分数。

3:866. 回文质数 - 力扣(LeetCode)质数就是素数。。。。

### 关于2024华为ODC语言真题 对于2024年的华为OD,确实存在针对不同别的题库。当进入考网页后的链接显示【E】时,则表明该考生面对的是E题库中的题目[^2]。 具体到C语言实现方面的一个实例——正则表达式替换功能,在此提供一段基于需求构建的基础代码框架: ```c #include <stdio.h> #include <string.h> void replace_substring(char *str, const char *oldSubStr, const char *newSubStr) { int oldLen = strlen(oldSubStr); int newLen = strlen(newSubStr); while (strstr(str, oldSubStr)) { // 查找子串位置并进行替换操作 char temp[1024]; // 假设输入字符串不会超过这个长度 strcpy(temp, str); // 复制原字符串以便修改 char *pos = strstr(temp, oldSubStr); // 找到匹配的位置 memmove(pos + newLen, pos + oldLen, strlen(pos + oldLen) + 1); // 移动内存完成删除旧的部分 memcpy(pos, newSubStr, newLen); // 插入新的部分代替原来的子串 strcpy(str, temp); // 将更改写回原始指针指向的地方 } } int main() { char string[] = "hello world"; printf("Original String: %s\n", string); replace_substring(string, "world", "China"); printf("Modified String: %s\n", string); } ``` 这段程序展示了如何在一个给定的字符串`str`中查找所有的指定模式`oldSubStr`并将它们替换成另一个特定模式`newSubStr`的功能[^1]。 另外还有关于从M个字符中选取N个来组成新字符串的问题,这实际上是一个典型的全排列问题变种。这类问题可以通过递归算法解决,并且可以在力扣网站找到相似练习题以加深理解[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MISAYAONE

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

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

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

打赏作者

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

抵扣说明:

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

余额充值