C语言程序设计P5-3【应用函数进行程序设计 | 第三节】——知识要点:函数的嵌套调用和递归调用
知识要点:函数的嵌套调用和递归调用
视频
目录
一、任务分析
二、必备知识与理论
三、任务实施
一、任务分析
本任务要求用递归法求 n!。
我们知道n!=n×(n-1)×(n-2)×……×1=n(n-1)!递归公式为:
1.上面公式分解为n!=n×(n-1)!,即将求n!的问题变为求(n-1)!的问题,(n-1)!= (n-1)×(n-2)!,即将求(n-1)!的问题变为求(n-2)!的问题,再将求(n-2)!的问题变为求(n-3)!的问题,依此类推,直到最后成为求0!,这是递推过程;
2.反过来求0!=1,1!,2!,3!,……,n!,为“回归过程”。
二、必备知识与理论
1.函数的嵌套调用
在C语言中,函数定义都是互相平行、独立的模块,无隶属关系,只存在调用和被调用的关系,除了主函数不能被其他函数调用外,其它函数之间都可以互相调用。
【例5.4】写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。
算法分析:在数学上,两数的最小公倍数=两数乘积/两数的最大公约数。
求两个数的最大公约数应用辗转相除法:已知两个整数M和N,假定M>N,则求M%N,若余数r为0,则N即为所求;若余数r不为0,用N除r,再求其余数……直到余数为0,则除数就是M和N的最大公约数。
程序代码如下:
#include <stdio.h>int gcd(int a,int b) /* 求最大公约数——辗转相除法 */{ int r,t;if(a<b){t=a;a=b;b=t;}r=a%b;while(r!=0){a=b;b=r;r=a%b; }return (b);}int lcm(int a,int b) /* 求最小公倍数 */{int r;r=gcd(a,b);return(a*b/r);}main() /* 主函数 */{int x,y; printf("please input two numbers:\n"); scanf("%d,%d",&x,&y); printf("%d\n",gcd(x,y));printf("%d\n",lcm(x,y));}
运行结果:
please input two numbers:
66,78↙
6
858
在这个例子中,主函数首先调用了函数gcd()求最大公约数,然后调用函数lcm()求最小公倍数,而在函数lcm()中又调用了函数gcd(),这就是一个函数嵌套调用的过程。
注意:①函数之间没有从属关系,一个函数可以被其它函数调用,同时该函数也可以调用其它函数。
②在C语言中,函数可以嵌套调用,但不可以嵌套定义。
2.函数的递归调用
函数的递归调用实际上是函数嵌套调用的一种特殊情况。在调用一个函数的过程中直接或间接地调用该函数本身,称为函数的递归调用。直接调用称为直接递归调用,间接调用称为间接递归调用。程序中常用的是直接递归。将这种在函数体内调用该函数本身的函数称为递归函数。
三、任务实施
用递归的方法求n!
我们知道n!=n×(n-1)×(n-2)×……×1=n(n-1)!递归公式为:
算法分析:
(1)上面公式分解为n!=n×(n-1)!,即将求n!的问题变为求(n-1)!的问题,(n-1)!= (n-1)×(n-2)!,即将求(n-1)!的问题变为求(n-2)!的问题,再将求(n-2)!的问题变为求(n-3)!的问题,依此类推,直到最后成为求0!,这是递推过程;
(2)反过来求0!=1,1!,2!,3!,……,n!,为“回归过程”。
(3)以求4的阶乘为例,4!=4×3!,3! =3×2!,2!=2×1!,1!=1,0!=1,它的递归结束条件是当n=1或n=0时,n!=1。
#include <stdio.h>float fac(n){ float f;if(n<0) printf("n<0,data error\n");else if(n==0||n==1) f=1;else f=fac(n-1)*n; /* 递归调用 */return(f);}main(){int n;float y;printf("input an integer number:");scanf("%d",&n);y=fac(n); /* 调用递归函数 */printf("%d!=%10.0f\n",n,y);}
运行情况如下:
input an integer number:4↙
4!= 24
递归过程分为两个阶段,第一阶段是“回推”阶段,即将求解4!变成求解4×3!,3!变成求解3×2!……直到1!=1为止;第二阶段是“递推”阶段,即根据2×1!得到2!,再根据3×2!得到3!,4×3!得到4!,结果为24。显然,在一个递归过程中,回推阶段是有限的递归调用过程,这样就必须要有递归结束条件,否则会无限地递归调用下去。
本例的递归结束条件为:当n的值为0或为1时,fac(n)的值为1; n<0时,作为错误输入数据。
在递推阶段中,函数执行完后必定要返回主调函数,通过return语句将fac(n)的值带回到上一层fac(n)函数,一层一层返回,最终在主函数中得到fac(4)的结果。
注意:一个合法的递归应该由两部分构成,一是递推公式,二是结束条件,缺少任何一个都无法利用递归解决问题。
最后对递归函数作如下概括:
(1)有些问题既可以用递归的方法解决,也可以用递推的方法解决。有些问题不用递归是难以得到结果的,如汉诺塔。某些问题,特别是与人工智能有关的问题,本质上是递归的。
(2)递归函数算法清晰,代码简练。如汉诺塔问题可谓复杂,程序却极为简单。
(3)从理论上讲,递归函数似乎很复杂,其实它是编程中一类问题的算法,最为直 接。一旦熟悉了递归,它就是处理这类问题的最清晰的方法。
(4)C编译系统对递归函数的自调用次数没有限制,但当递归层次过多时,可能会引起内存不足而造成运行出错,尤其是函数内部定义较多的变量和较大的数组时。
(5)函数递归调用时,在栈上为局部变量和形参分配存储空间,并从头执行函数代 码。递归调用并不复制函数代码,只是重新分配相应的变量,返回时再释放存储空间。递归需要保存变量、断点、进栈、出栈,增加许多额外的开销,会降低程序的运行效率,所以程序设计中又有一个递归消除的问题。
相关文章:
C语言程序设计P5-3【应用函数进行程序设计 | 第三节】——知识要点:函数的嵌套调用和递归调用
知识要点:函数的嵌套调用和递归调用 视频 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 本任务要求用递归法求 n!。 我们知道n!n(n-1)(n-2)……1n(n-1)!递归公式为: 1.上面公式分解为n!n(n-1)!,即将求n!的问题变为…...
【Java】protobuf-maven-plugin主动下载protoc编译proto文件
背景: 我们hadoop的代码里,配置的是3.7.1的protocol buffer,但是编译环境上安装的是2.5.0。 能成功编译,且没有什么兼容性问题。这里非常好奇发生了什么,于是研究了一下protobuf-maven-plugin插件, 发现是他去下载的 在使用protobuf-maven-plugin插件时,我们一般会这么…...
Go学习:变量
目录 1. 变量的命名 2. 变量的声明 3. 变量声明时注意事项 4. 变量的初始化 5. 简单例子 变量主要用来存储数据信息,变量的值可以通过变量名进行访问。 1. 变量的命名 在Go语言中,变量名的命名规则 与其他编程语言一样,都是由字母、数…...
AllegroHand 四指灵巧手:机器人领域的创新力量
Allegro Hand 作为一款高性价比且适应性强的机器人四指灵巧手,凭借其四根手指和十六个独立的电流控制接头,成为机器人复杂抓握、柔性操作以及触觉传感器等研究领域的理想之选。 Allegrohand 四指灵巧手技术特点 机械结构 Allegro Hand的机械结构设计高…...
蓝桥杯准备训练(lesson3 ,c++)
变量与常量 4.1 变量的创建4.2 变量初始化4.3 变量的分类4.4 常量4.4.1 字⾯常量4.4.2 #define定义常量4.4.3 const定义常量4.5 练习练习1:买票练习2:AB问题练习3:鸡兔同笼 4.1 变量的创建 了解清楚了类型,我们使⽤类型做什么呢&…...
Conda + JuiceFS :增强 AI 开发环境共享能力
Conda 是当前 AI 应用开发领域中非常流行的环境和包管理系统,因其能够简单便捷地创建与系统资源相隔离的虚拟环境广受欢迎。 Conda 支持在不同的操作系统上重建相同的工作环境,但在环境共享复用方面仍存在一些挑战。比如,在不同机器上复用相…...
小红薯x-s算法最新补环境教程12-06更新(下)
在上一篇文章中已经讲了如何去定位x-s生成的位置,本篇文章就直接开始撸代码吧 如果没看过的话可以看:小红薯最新x-s算法分析12-06(x-s 56)(上)-CSDN博客 1、获取加密块代码 首先来到参数生成的位置&…...
强化ASPICE合规与认可度:关键策略与实践路径
确保ASPICE(Automotive SPICE)标准的合规性和认可度,是一个涉及多方面努力和持续改进的过程。以下是一些关键步骤和建议,以帮助企业实现这一目标: 一、熟悉ASPICE标准 深入阅读和理解:首先,需要…...
没有合理使用线程池,引发的生产环境BUG
引言 随着多线程和并发处理需求的增加,线程池成为了提升系统性能的重要工具。Java 提供了强大的 ThreadPoolExecutor 类,能够高效地管理线程池,减少线程创建和销毁的开销。然而,当线程池达到其最大容量时,如何优雅地处…...
异步处理与后台任务管理:在 FastAPI 中实现高级特性
异步处理与后台任务管理:在 FastAPI 中实现高级特性 目录 ⚡ 背景任务与异步处理概述🛠️ 使用 BackgroundTasks 执行后台任务🚀 异步视图函数:使用 async 和 await🔄 处理并发任务:提升应用性能与响应能…...
ceph存储池
1、存储池 1、存储池的概念 存储池就是ceph的逻辑分区,专门用来存储对象的 特点 将文件切片成对象,通过hash算法,找到存储池中的pg,池中的pg根据crush算法找到osd节点 存储中的PG数量对性能有重要的影响,过多和过少…...
STM32基于HAL库的串口接收中断触发机制和适用场景
1. HAL_UART_Receive_DMA函数 基本功能 作用:启动一个固定长度的 DMA 数据接收。特点: 需要预先指定接收数据的长度(Size 参数)。DMA 会一直工作直到接收到指定数量的数据,接收完成后触发 HAL_UART_RxCpltCallback 回…...
如何查看电脑的屏幕刷新率?
1、按一下键盘的 win i 键,打开如下界面,选择【系统】: 2、选择【屏幕】-【高级显示设置】 如下位置,显示屏幕的刷新率:60Hz 如果可以更改,则选择更高的刷新率,有助于电脑使用起来界面更加流…...
Q3收入回退,盈利与商业化落地步履艰难,文远知行亟待背水一战
撰稿|行星 来源|贝多财经 12月2日,全球商业杂志《Fortune》(财富)揭晓了2024年“未来50强”(The Future 50)企业榜单,上市不久的全球Rbotaxi第一股文远知行(NASDAQ:WRD)位列第26名…...
如何利用Java爬虫获得商品类目
在当今数字化时代,数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言,获取商品类目数据尤为重要,因为这些数据可以帮助他们更好地理解市场…...
Charts 教程:创建交互式图表的基础
ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表,…...
Jackson - JsonGenerator创建JSON、JsonParser解析JSON
以下是关于如何使用Jackson的JsonGenerator类来创建JSON内容以及如何使用JsonParser类来读取JSON内容的教程。 依赖项 首先,在pom.xml文件中添加以下依赖项以引入Jackson库: <dependency><groupId>com.fasterxml.jackson.core</groupI…...
数据结构与算法——1202—排序递归
1、选择排序 #include<iostream> #include<vector> using namespace std;void SelectSort(vector<int>& nums) {int i;int j;int minIndex;int length nums.size();if (length 0 || length 1) return;for (i 0; i < length-1; i)//遍历所有元素{…...
Lattice Radiant Software Lattice Propel Builder Lattice Propel 2024.1 安装
因项目需要,对Lattice 器件LIFCL-40 CrossLink进行评估 先从Lattice官网下载Radiant安装包: Lattice Radiant设计软件 新建工程环境...
【Linux系统】 Linux内核与UNIX设计哲学的结合
Linux 内核虽然不是 UNIX 的直接衍生物,但它深受 UNIX 设计哲学的影响。Linux 的开发者,尤其是 Linus Torvalds,在设计和实现 Linux 时,借鉴了 UNIX 的核心思想,使 Linux 成为一个类 UNIX 系统。 以下从 UNIX 设计哲学…...
MKS EDGE Series RF Generators Power Solution 软件
MKS EDGE Series RF Generators Power Solution 软件...
【机器学习 | 基于Lasso回归和随机森林的上海链家二手房房价预测】
文章目录 🏳️🌈 1. 导入模块🏳️🌈 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 去除缺失数据2.5 面积、价格、单价、楼层、建筑时间数据提取2.6 朝向数据处理 🏳️🌈 3. 特…...
MyBatis-Plus分页查询方式
分页查询基本方式 SpringBootTest(classes LearningApplication.class) public class MPTest {AutowiredILearningLessonService lessonService;Testpublic void test(){/*** Page<LearningLesson>:MyBatisPlus提供的分页对象* 1:当前页数* 2&am…...
分布式cap
P(分区安全)都能保证,就是在C(强一致)和A(性能)之间做取舍。 (即立马做主从同步,还是先返回写入结果等会再做主从同步。类似的还有,缓存和db之间的同步。&am…...
【组件封装】uniapp vue3 封装一个完整的Tabs(标签页)组件教程,功能由简到杂实现讲解。
文章目录 前言一、简单版Tabs代码实现: 二、下划线带动画的TabsAPI回顾:代码实现: 三、内容区域滑动切换切换动画代码实现:(2)禁用手势滑动切换(3)内容区域换为插槽 四、标签栏可滚动…...
AI在SEO中的应用与关键词优化探讨
内容概要 在当今数字化时代,人工智能(AI)技术为搜索引擎优化(SEO)带来了革命性的改变。传统的SEO主要依赖于人为的经验和判断,而AI则通过算法分析海量数据,提供更加精准和高效的方式优化关键词…...
JUC:Synchronized和锁升级
1. 面试题 谈谈你对Synchronized的理解Sychronized的锁升级你聊聊Synchronized实现原理,monitor对象什么时候生成的?知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛?或者说这两个操作计算机底层是如何执行的偏向锁和轻量级…...
如何使用锁实现多进程和多线程的并发执行的安全
多进程和多线程的并发: 多进程和多线程的并发意思是在同一段时间内,多个进程或者线程一起执行,但是这些进程或者线程的执行并不是真正意义上在同一时刻执行,而是在不同的时间里执行,因为每个CPU在同一时间只能处理同一…...
LabVIEW如何用运动控制卡实现伺服电机的转矩控制?
在LabVIEW中,使用运动控制卡实现伺服电机的转矩控制,通常通过以下几个步骤来完成。这里将结合LabVIEW的运动控制功能和伺服电机控制的基本原理进行详细介绍。 1. 选择合适的运动控制卡 要实现伺服电机的转矩控制,首先需要一张支持伺服电…...
SQL面试题——百度SQL面试题 无效搜索
百度SQL面试题 无效搜索 今天的题目是来自百度的SQL 面试题目 现有一份用户搜索日志,包含用户ID,时间,用户搜索内容。定义 无效搜索:如果用户下一次搜索内容中包含本次搜索内容,则认为本次搜索为无效搜索。请查询用户无效搜索记录 +---------+---------------------+--…...
媒体查询、浏览器一帧渲染过程
文章目录 媒体查询语法示例根据视口宽度应用不同的样式根据设备像素比应用不同的样式根据方向应用不同的样式 使用场景 浏览器一帧的渲染过程 媒体查询 媒体查询(Media Query)是CSS3中的一个重要特性,它允许开发者根据设备的特定条件&#x…...
实习工作日志
工作日志 遇到的bug 由于不熟悉Python,造成了这个bug python的浅拷贝与深拷贝,一定要创建新的变量,否则只是单纯拷贝地址...
JavaWeb学习--cookie和session
目录 (一)Cookie概述 1.什么叫Cookie 2.Cookie规范 3.Cookie的覆盖 4.cookie的最大存活时间 (Cookie的生命) (二) Cookie的API 1.创建Cookie:new 构造方法 2.保存到客户端浏…...
ETCD的封装和测试
etcd是存储键值数据的服务器 客户端通过长连接watch实时更新数据 场景: 当主机A给服务器存储 name: 小王 主机B从服务器中查name ,得到name-小王 当主机A更改name 小李 服务器实时通知主机B name 已经被更改成小李了。 应用:服务注册与发…...
c++引用笔记
1 引用的基本使用 // 引用 // 作用:给变量起别名 // 语法:数据类型 &别名 原名int main(int argc, char const *argv[]) {int a 10;int &b a;cout << "a " << a << endl;cout << "b " <&l…...
macOS运行amd64的镜像
在macOS上运行amd64(x86_64)架构的镜像,通常通过虚拟化或仿真工具来实现。例如,如果你使用的是基于Apple Silicon(M1或M2等)芯片的Mac,那么你的处理器是ARM架构的,而amd64是x86架构&…...
Oracle查询优化:高效实现仅查询前10条记录的方法与实践
在 Oracle 中,实现仅查询前10条记录的四种方法 1. 使用 ROWNUM 查询 ROWNUM 是 Oracle 中的伪列,用于限制返回的行数。 SELECT * FROM table_name WHERE condition AND ROWNUM < 10;condition:查询条件。ROWNUM < 10:限制…...
【时时三省】(C语言基础)结构体内存对齐
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 我们已经掌握了结构体的基本使用了。现在我们深入讨论一个问题:计算结构体的大小。 这也是一个特别热门的考点:结构体内存对齐 示例: 第一个s如果根据字…...
工业物联网关
工业物联网关的定义与功能 定义:工业物联网关是一种在工业物联网(IIoT)系统中起到关键连接作用的设备。它位于工业现场设备(如传感器、执行器等)和上层的工业网络(如企业内部网络、云平台等)之间…...
Docker 安装 Yapi
Docker 安装系列 Docker已安装。 1、场景Yapi使用的MongoDB用户信息 1.1 创建自定义 Docker 网络 首先,创建一个自定义的 Docker 网络,以便 MongoDB 和 YApi 容器可以相互通信 [rootflexusx-328569 data]# docker network create yapi-networ…...
MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作
目录 第一章 以问题导入的方式,深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…...
UDE连接不上miniwiggler
PLS 的UDE 软件搭配miniwiggler硬件用来调试英飞凌的单片机是个不错的选择,比如TC275、TC387等等。英飞凌官方开发板板载了miniwiggler,非常方便。 很多买了英飞凌官方开发板的同学可能会发现,使用英飞凌的mentool软件能连接上自己的板子&…...
Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】
化工安全关系到国计民生,近年来随着化工厂数字化改革不断推进,数字工厂逐步成为工厂安全管理的重要手段。而化工管道作为工厂设施的重要组成部分,由于其数量多、种类繁杂,一直是企业管理的重点和难点。 传统的化工管廊往往缺乏详…...
数据结构(Doubly Linked List双向链表)
1.前言: 在计算机科学的广袤领域中,数据结构犹如构建高楼大厦的基石,它们为高效地组织、存储和处理数据提供了坚实的框架。而双向链表作为一种重要且功能强大的数据结构,在众多算法与程序设计场景中都展现出了独特的魅力与价值。…...
【踩坑】修复报错libcurl.so.4、LIBFFI_BASE_7.0、libssl.so.3
转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ libcurl.so.4: sudo apt install curl -y LIBFFI_BASE_7.0: conda install libffi3.3 -y libssl.so.3: sudo apt install -y openssl li…...
【Java实现MySQL 数据库导出 Excel 表的方法详解】
MySQL 数据库导出 Excel 表的方法详解 在日常开发中,我们经常需要将数据库中的数据导出为 Excel 文件,以便进行数据分析或分享给其他同事。本文将详细介绍如何从 MySQL 数据库导出数据并生成 Excel 文件,具体实现将基于 Java 语言和 Spring …...
CentOS 7 环境下常见的操作和配置
目录 1. CentOS 7 中的 vsftpd 配置与使用 安装与启动 vsftpd 配置 vsftpd(/etc/vsftpd/vsftpd.conf) 常见命令 2. 使用 yum 包管理器 3. 安全性与防火墙配置 开放端口 4. 使用 systemd 管理服务 5. SELinux 配置 查看 SELinux 状态 临时禁用…...
使用mtools搭建MongoDB复制集和分片集群
mtools介绍 mtools是一套基于Python实现的MongoDB工具集,其包括MongoDB日志分析、报表生成及简易的数据库安装等功能。它由MongoDB原生的工程师单独发起并做开源维护,目前已经有大量的使用者。 mtools所包含的一些常用组件如下: mlaunch支…...
基于 RNN(GRU, LSTM)+CNN 的红点位置检测(pytorch)
文章目录 1 项目背景2 数据集3 思路4 实验结果5 代码 1 项目背景 需要在图片精确识别三跟红线所在的位置,并输出这三个像素的位置。 其中,每跟红线占据不止一个像素,并且像素颜色也并不是饱和度和亮度极高的红黑配色,每个红线放大…...
35页PDF | 元数据与数据血缘落地实施(限免下载)
一、前言 这份报告详细介绍了元数据与数据血缘的概念、重要性以及在企业数据中台中的应用。报告阐述了数据中台的核心价值在于整合和管理体系内的数据,以提升数据资产化能力并支持业务决策。报告还涵盖了元数据的分类(技术元数据和业务元数据࿰…...
Ksliu:特朗普面临四大险恶威胁
近日,美国的右翼媒体《Newsmax》发表了一篇评论文章,题目是《特朗普面临四大险恶威胁》,作者约翰·布朗(John Browne),是英国国会杰出的前议员,还曾担任首相玛格丽特·撒切尔政府的首席顾问。布朗称:去年11月20日特朗普赢得美国大选后,美国及世界…...
毛泽东思想是中国的最先进的政治思想文化(下)之二
三、政治思想文化问题之大,要讲立场、观点、方法;真正的科学、民主是假、劣、伪、冒,恶、坏、赖性政治思想文化的紧箍咒。文化是人的属性;形成文化系统必然是国家一定社会制度的组成部分;人是分阶级的,不同的国家制度也一定是不同阶级的人在主导、主宰的。人们论文化问题…...
突发!缅甸政府军发动空袭,致40死20伤
据美联社1月10日报道,缅甸少数民族武装组织和当地一家慈善机构的官员9日说,缅甸政府军对一个由少数民族武装组织控制的村庄发动空袭,造成约40人死亡,至少20人受伤。他们说,爆炸引发的大火烧毁了数百座房屋。报道说,8日的袭击发生在兰里岛的皎尼茂村。该地区目前由若开邦西…...
后沙:不排除使用武力!特朗普侵占格陵兰岛的具体步骤
从提出“购买”到扬言控制,美国侵占格陵兰岛的意图越来越清晰。丹麦政府一开始还故作镇定,将此事当成是特朗普个人的“过火玩笑”,说格陵兰岛决不可能出售。据英国《卫报》报道,格陵兰岛自治政府总理埃格德曾在12月23日在一份声明中回…...
韩乱时,朝鲜做了三件事
最近韩国政坛闹哄哄的,李在明和尹锡悦斗得不可开交,代理总统已经出现了两个。现在韩国有三位总统,分别是被停职的尹锡悦和两位代总统。按古代的说法,就是三龙同朝,乱世之象。既然韩国政坛闹成一锅粥,那么作为韩国的对手,朝鲜在干什么?按照传统的思路,敌国乱,是进取的…...
上海公安开展“砺剑2025”集中行动
1月6日,上海公安机关在全市范围组织开展“砺剑2025”第一次集中清查整治行动,集中排查化解矛盾纠纷,严厉打击防范突出违法犯罪,从严从紧落实各项治安防控措施。行动当天,组织开展夜间集中综合查缉行动,在全市重点路段、警情多发地开展设卡临检,民警加…...