当前位置: 首页 > news >正文

院校机试刷题第二天:1479 01字符串、1701非素数个数

一、1479 01字符串

1.题目描述

2.解题思路

方法一:暴力法

模拟过程,列出几个数据来a[1]=1, a[2]=2, a[3]=3, a[4]=5以此类推,这就是斐波那契数列,每一项都等于前两项之和,确定好a[1], a[2]即可。

方法二:动态规划法

首先,我们考虑基本情况:

  • 当 n=1 时,只有一个0,无法进行压缩,所以 f(1)=1。

  • 当 n=2 时,可以压缩成1,或者保持00,所以 f(2)=2。

对于 n≥3,我们可以考虑两种情况:

  1. 第一个0不与第二个0压缩,那么剩下的 n−1 个0可以有 f(n−1) 种组合。

  2. 第一个0与第二个0压缩成1,那么剩下的 n−2 个0可以有 f(n−2) 种组合。

因此,我们可以得到递推关系: f(n)=f(n−1)+f(n−2)

3.代码

#include <iostream>
using namespace std;int main() {int n;cin >> n;int a[10005];a[1] = 1;a[2] = 2;for(int i = 3; i <= n; i++) {a[i] = (a[i - 1] + a[i - 2]) % 2333333;}cout << a[n];return 0;
}

二、1701非素数个数

1.题目描述

2.解题思路

模拟题,没有涉及到任何算法,关键在于如何判断素数。

要判断一个数 n 是否为素数,可以尝试用从2到 根号n​ 的所有整数去除 n。如果 n 能被这些数中的任何一个整除,那么 n 就不是素数;否则, n 是素数。

常见的素数判断函数isPrime

bool isPrime(int n) {// 小于2的数不是素数if (n < 2) {return false;}// 检查从2到sqrt(n)的整数是否能整除nfor (int i = 2; i <= sqrt(n); i++) {if (n % i == 0) {return false; // 如果能整除,n不是素数}}return true; // 如果不能被任何数整除,n是素数
}

这里将1看作非素数,有的题目中1是素数,看不同题目的定义。

3.代码

直接版

#include <iostream>
using namespace std;bool isPrime(int a) {if(a == 1) {return true;}for(int j = 2; j * j <= a; j++) {if(a % j == 0) return false;}return true;
}int number(int a, int b) {int result = 0;for(int i = a; i <= b; i++) {if(!isPrime(i)) result++;}return result;
}int main() {int a, b;while(cin >> a >> b) {int count1 = number(a, b);cout << count1 << endl;}return 0;
}

省时间版:有的题目有时间限制,用上面的代码会超时。

本质和上面是相同的,但是这里用一个数组存起来该数字是否是素数,避免之后重复求,省时间

#include <iostream>
using namespace std;int A[10000005];bool isPrime(int a) {if(a == 1) {return true;}for(int j = 2; j * j <= a; j++) {if(a % j == 0) return false;}return true;
}void getA(){for(int i = 0; i <= 10000005; i++) {if(isPrime(i)){A[i] = 1; // 是素数标记为1}else {A[i] = 0;}}
}int number(int a, int b) {int result = 0;for(int i = a; i <= b; i++) {if(A[i] == 0) result++;}return result;
}int main() {getA();int a, b;while(cin >> a >> b) {int count1 = number(a, b);cout << count1 << endl;}return 0;
}

OS:N诺的编译器真的不行,看数据要钱,提交总是过不了

相关文章:

  • 部署GraphRAG配置Neo4j实现知识图谱可视化【踩坑经历】
  • 用git下载vcpkg时出现Connection was reset时的处理
  • Yolov8的详解与实战-深度学习目标检测
  • 在Spark搭建YARN
  • [:, :, 1]和[:, :, 0] 的区别; `prompt_vector` 和 `embedding_matrix`的作用
  • Pinecone 向量数据库的连接以及增删改查操作讲解
  • 51单片机——交通指示灯控制器设计
  • Tailwind CSS 实战教程:从入门到精通
  • (C语言)超市管理系统(测试2版)(指针)(数据结构)(清屏操作)
  • UI 原型设计:交互规则的三要素——重要性、原则与实践
  • 浅析 Golang 内存管理
  • K8S redis 部署
  • nvrtc环境依赖
  • 数据库常见故障排查
  • Java GUI开发全攻略:Swing、JavaFX与AWT
  • 深入理解SpringBoot中的SpringCache缓存技术
  • 2025年PMP 学习十二 第9章 项目资源管理
  • iOS 阅后即焚功能的实现
  • “海外滴滴”Uber的Arm迁移实录:重构大规模基础设施​
  • 前端实践:打造高度可定制的Vue3时间线组件——图标、节点与连接线的个性化配置
  • 德国总理默茨发表首份政府声明:将提升国防能力,全力发展经济
  • 日本前卫艺术先驱群展上海:当具体派相遇古树古宅
  • 颜福庆与顾临的争论:1930年代在中国维持一家医学院要花多少钱
  • 《蛮好的人生》:为啥人人都爱这个不完美的“大女主”
  • 广东省人大教科文卫委原主任委员梁万里被开除党籍:退休后受贿仍不知止
  • 牧原股份子公司与养殖户种猪买卖纠纷案一审胜诉