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

C语言程序设计(二)

四.找素数

      素数:除了1和它本身不再有其他因数的自然数。换句话说:一个大于1的自然数 ,如果只能被1和它本身整除,那就是素数(质数)。

在打印中遇到的问题就是,知道怎么写却总是运行不起来。主要有这两个问题:

1.每判断一个数是否是素数后都需要对flag进行初始化,否则flag一直都是1。

2.打印素数需要在外层循环里面,每判断一次就打印一次(是素数则打印,不是则不打印)。

int main()
{int i = 0;int j = 0;int flag = 0;//声明一个flagfor (i = 100; i <= 200; i++){flag = 0;//每次判断素数后需要初始化for (j = 2; j < i; j++){if (i % j == 0){flag = 1;//用1代表不是素数的自然数break;} }if (flag == 0){printf("%d是素数\n", i);//0则代表的是素数}}return 0;
}

 五.最小公倍数以及最大公约数

最大公约数:两个或多个整数共有的最大的那个正整数约数。例:(12,18)->36

       基本办法(穷举法):找两个数小的那个,然后依次减一,其中判断i是否既能被m整除又能被n整除,满足则最大公约数就i,接着跳出循环。

int main()
{int m = 0;int n = 0;int i = 0;scanf("%d %d", &m, &n);int min = m > n ? n : m;for (i = min; i >=1 ; i--){if (m % i == 0 && n % i == 0){printf("%d是最大公约数\n", i);break;}}return 0;
}

       辗转相除法 :输入两个数m和n,m对n求余。m%n如果等于0,则最大公约数为n;若不等于0,将原先的n赋值给m,求得的余数赋值给n,再进行求余,循环终止条件则是求余为0。

int main()
{int m = 0;int n = 0;int temp = 0;int t = 0;scanf("%d %d", &m, &n);while (m % n)//循环终止条件{temp = m % n;m = n;n = temp;}printf("%d是最大公约数\n", n);return 0;
}
最小公倍数:两个或多个整数的公倍数里最小的那一个。例:(12,18)->6

       通过计算两个或多个数之积,再除以它们的最大公约数(辗转相除法计算),求最小公倍数有很多种方法(也可以通过找两个数或多个数最大的,判断是否可以除尽其它数,不能则++直至找到能除尽的那个数)。

int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);int max = a * b;int k = 0;while (a % b)//辗转相除法{k = a % b;a = b;b = k;}printf("%d\n", max / b);return 0;
}

六.字符串逆序

 题目意思是最后打印的数组呈现出来的就是倒序的样子,而非倒序打印。要倒序打印数组,需要将第一个字符与最后一个字符交换(交换时需要第三方),第二个字符与倒数第二个字符交换,两端一直向中间汇聚,直到字符剩一个或两个。

       从第一次函数来说吧!先是'w'与'!'交换需要中间变量temp,改变数组得用上指针,指针找'!'需要知道字符串的长度*(string+len-1),将'!'赋值给*string,再将'\0'赋值给最后一个字符(这里赋值的原因是为了调用下一次函数时,计算剩下字符串的长度(除'w''和!'),因为字符串结束标志是'\0'。假使不赋值'\0',计算长度时会多加'!',等到下次赋值时就是将'!'给'e',这样就得不到想要的倒叙。)。递归重点来啦:不断重复以上操作,直至所剩的字符长度小于2,假设为1的话最后这个字符不需要交换且没有字符与之交换,这就成为这个题目递归的限制条件。最后再将temp的字符给*(string+len-1)。这样就好啦!


int Strlen(char *str)
{int count = 0;while (*str!='\0'){count++;str++;}return count;
}void reverse_string(char* string)
{int len = Strlen(string);char temp = *string;//交换头和尾字符*string = *(string + len - 1);*(string + len - 1) = '\0';//为了下一次递归头和尾相呼应if (Strlen(string + 1) >= 2)    //结束递归的条件向两端汇聚,当只剩一个字符则不需要交换{reverse_string(string + 1);//调用不需要指针*}*(string + len - 1) = temp;
}int main()
{char arr[] = "welcome to my world!!!";//int sz = sizeof(arr) / sizeof(arr[0]);//int len = strlen(arr);//printf("%d\n", sz);//23  写这个是为了测试sizeof和strlen计算字符串个数的区别//printf("%d\n", len);//22reverse_string(arr);printf("%s\n", arr);return 0;
}

这里再讲一个小知识:sizeof计算字符时会计算'\0',而strlen函数不计算它。

相关文章:

C语言程序设计(二)

四.找素数 素数&#xff1a;除了1和它本身不再有其他因数的自然数。换句话说&#xff1a;一个大于1的自然数 &#xff0c;如果只能被1和它本身整除&#xff0c;那就是素数&#xff08;质数&#xff09;。 在打印中遇到的问题就是&#xff0c;知道怎么写却总是运行不起来。主要…...

Oracle对数据库行和数据库的监控

前言&#xff1a; Oracle对表的监控分为数据行修改DML的监控、对表的DDL监控 1、对表的DML监控&#xff08;数据的增删改&#xff09; -- 创建测试表 create table tab_test01( id varchar2(100) default sys_guid(), name varchar2(100), insert_date date default sysdate…...

论文阅读:面向自动驾驶场景的多目标点云检测算法

论文地址:面向自动驾驶场景的多目标点云检测算法 概要 点云在自动驾驶系统中的三维目标检测是关键技术之一。目前主流的基于体素的无锚框检测算法通常采用复杂的二阶段修正模块,虽然在算法性能上有所提升,但往往伴随着较大的延迟。单阶段无锚框点云检测算法简化了检测流程,…...

Vite + Vue3 + TS项目配置前置路由守卫

在现代前端开发中&#xff0c;使用 Vue 3 和 TypeScript 的组合是一种流行且高效的开发方式。Vite 是一个极速的构建工具&#xff0c;可以显著提升开发体验。本文博主将指导你如何在 Vite Vue 3 TypeScript 项目中配置前置路由守卫&#xff08;Navigation Guards&#xff09;…...

设计模式-备忘录

备忘录&#xff08;Memento&#xff09;设计模式是为了保存对象当前状态&#xff0c;并在需要的时候恢复到之前保存的状态。以下是一个简单的C#备忘录模式的实现&#xff1a; // Originator 类&#xff0c;负责创建和恢复备忘录 class Originator {private string state;publi…...

openEuler安装docker,加速镜像拉取

文章目录 文章来源1.配置镜像源2.编辑配置文件3.安装想要的版本4. ~ 原神&#xff01;5.由于很多镜像无法拉取配置镜像源 文章来源 http://t.csdnimg.cn/zYDYy 原文连接 由于之前的仓库不让用且 1.配置镜像源 由于 国外的镜像仓库好多不让用 所以配置阿里的镜像源 yum-confi…...

angular入门基础教程(七)系统路由

路由的实现 当我们系统越来复杂&#xff0c;功能越来越多&#xff0c;路由也就是必须的了。在 ng 中如何实现路由呢&#xff1f; 启用路由 在 app 目录下&#xff0c;新建一个 router 目录&#xff0c;把 app.routers.ts 文件拷贝过来&#xff0c;并修改一下。 import { Ro…...

Unity Canvas动画:UI元素的动态展示

在Unity中&#xff0c;Canvas是用于管理和展示用户界面&#xff08;UI&#xff09;元素的系统。Canvas动画是UI设计中的重要组成部分&#xff0c;它能够提升用户体验&#xff0c;使界面更加生动和响应用户操作。本文将探讨Unity Canvas动画的基本概念、实现方法以及一些实用的技…...

apache.commons.pool2 使用指南

apache.commons.pool2 使用指南 为什么要使用池 创建对象耗时较长&#xff0c;多线程频繁调用等因素限制了我们不能每次使用时都重新创建对象&#xff0c;使用池化思想将对象放进池内&#xff0c;不同线程使用同一个池来获取对象&#xff0c;极大的减少每次业务的调用时间。 …...

【Python面试题收录】Python编程基础练习题②(数据类型+文件操作+时间操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题 编写一个函数&#xff0c;实现&#xff1a;先去除左右空白符&#xff0c;自动检测输入的数据类型&#xff0c;如果是整数就转换成二进制形式并返回出结果&#xff1b…...

typescript 定义类型

type infoType string; let name: infoType "全易"; let location: infoType "北京"; // let age: infoType 18; // 报错 infoType string&#xff5c;number 就不报错了 let job: infoType "开发"; let love: infoType "吃喝玩乐&q…...

基于Java+SpringBoot+Vue的的课程作业管理系统

前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 哈喽兄弟们&#xff0c;好久不见哦&#xff5…...

分布式日志分析系统--ELK

文章目录 ELK概述ELK主要特点ELK应用架构 Elasticsearch原理JSON格式倒排索引 ES与关系型数据库ES相关概念ES安装说明1.环境初始化2.优化系统资源限制配置3.编辑ES服务文件elasticsearch. yml 优化ELK集群安装脚本scp的使用集群安装成功 Shell命令API使用创建索引创建Type创建分…...

Linux初学基本命令

linux文件目录 1、bin->usr/bin binary存放命令 所有账户可以使用 Linux可以执行的文件&#xff0c;我们称之为命令command 2、boot 存放系统启动文件 3、dev device存放设备文件 4、etc 存放配置文件的目录 configration files 5、home home家目录 存…...

如何优化PyTorch以加快模型训练速度?

PyTorch是当今生产环境中最流行的深度学习框架之一。随着模型变得日益复杂、数据集日益庞大&#xff0c;优化模型训练性能对于缩短训练时间和提高生产力变得至关重要。 本文将分享几个最新的性能调优技巧&#xff0c;以加速跨领域的机器学习模型的训练。这些技巧对任何想要使用…...

用最简单的方法对大数据进行处理 vs spark(不需要安装大数据处理工具)

一、大文件处理策略 &#xff08;一&#xff09;、难点 内存管理&#xff1a; 大文件无法一次性加载到内存中&#xff0c;因为这可能会导致内存溢出&#xff08;OutOfMemoryError&#xff09;。 因此&#xff0c;需要使用流&#xff08;Stream&#xff09;或缓冲区&#xff08…...

非线性校正算法在红外测温中的应用

非线性校正算法在红外测温中用于修正传感器输出与实际温度之间的非线性关系。红外传感器的输出信号&#xff08;通常是电压或电流&#xff09;与温度的关系理论上是线性的&#xff0c;但在实际应用中&#xff0c;由于传感器特性的限制&#xff0c;这种关系往往呈现出非线性。非…...

python----线程、进程、协程的区别及多线程详解

文章目录 一、线程、进程、协程区别二、创建线程1、函数创建2、类创建 三、线程锁1、Lock2、死锁2.1加锁之后处理业务逻辑&#xff0c;在释放锁之前抛出异常&#xff0c;这时的锁没有正常释放&#xff0c;当前的线程因为异常终止了&#xff0c;就会产生死锁。2.2开启两个或两个…...

将 magma example 改写成 cusolver example eqrf

1&#xff0c;简单安装Magma 1.1 下载编译 OpenBLAS $ git clone https://github.com/OpenMathLib/OpenBLAS.git $ cd OpenBLAS/ $ make -j DEBUG1 $ make install PREFIX/home/hipper/ex_magma/local_d/OpenBLAS/1.2 下载编译 magma $ git clone https://bitbucket.org/icl…...

微信小程序教程007:数据绑定

文章目录 数据绑定1、数据绑定原则2、在data中定义页面数据3、Mustache语法的格式4、Mustache应用场景5、绑定属性6、三元运算8、算数运算数据绑定 1、数据绑定原则 在data中定义数据在WXML中使用数据2、在data中定义页面数据 在页面对应的.js文件中,把数据定义到data对象中…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

MySQL JOIN 表过多的优化思路

当 MySQL 查询涉及大量表 JOIN 时&#xff0c;性能会显著下降。以下是优化思路和简易实现方法&#xff1a; 一、核心优化思路 减少 JOIN 数量 数据冗余&#xff1a;添加必要的冗余字段&#xff08;如订单表直接存储用户名&#xff09;合并表&#xff1a;将频繁关联的小表合并成…...