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

rust-强化练习

钓鱼不打窝,钓的也不多

语言只靠看不行,还得练,下面是AI生成的一些题目,后续直接肝LeeCode,一举2得

1、猜数字

描述:创建一个简单的猜数字游戏,程序会随机生成一个数字,玩家需要猜出这个数字是多少。程序会给出提示,告诉玩家猜的数字是大了还是小了
use std::cmp::Ordering;
use std::io::stdin;
use rand::{Rng};
fn main() {'outer: loop {let rand_number = rand::thread_rng().gen_range(1..=100);loop {println!("please input one number:");let mut guess = String::new();stdin().read_line(&mut guess).expect("error");let number = match guess.trim().parse::<i32>() {Ok(num) => num,Err(_) => {println!("please input number");continue;}};match number.cmp(&rand_number) {Ordering::Less => {println!("too small")}Ordering::Equal => {println!("you win current number is {}", rand_number);break;}Ordering::Greater => {println!("too big")}}}println!("you can choose 'y' to continue ");let mut flag = String::new();stdin().read_line(&mut flag).expect("input error");if !flag.trim().eq("y") { break 'outer; }}println!("game over!")
}

2、计算器

描述:编写一个简单的计算器程序,支持加法、减法、乘法和除法运算。用户输入两个数字和一个操作符,程序输出运算结果。
use std::io::stdin;
use std::str::FromStr;/**描述:编写一个简单的计算器程序,支持加法、减法、乘法和除法运算。用户输入两个数字和一个操作符,程序输出运算结果。*/fn main() {loop {//  输入数字let mut input_number = String::new();stdin().read_line(&mut input_number).expect("input error");let number = parse_number(&input_number);// 输入运算符let mut operator = String::new();stdin().read_line(&mut operator).expect("input error");// 输入数字2let mut input_number = String::new();stdin().read_line(&mut input_number).expect("input error");let number2 = parse_number(&input_number);// 计算match (number, number2) {(Ok(n1), Ok(n2)) => {match calculate(n1, n2, &operator) {Ok(data) => println!("{}{}{}={}", n1, operator.trim(), n2, data),Err(e) => println!("calc error {}", e)}}_ => println!("source number is none")}println!("you can choose 'n' to end ");let mut flag = String::new();stdin().read_line(&mut flag).expect("input error");if flag.trim().eq("n") {break;}}
}/*** 数据计算*/
fn calculate(number: f32, number2: f32, operator: &str) -> Result<f32, &str> {match operator.trim() {"+" => Ok(number + number2),"-" => Ok(number - number2),"*" => Ok(number * number2),"/" => {if number2.abs() > f32::EPSILON {Ok(number / number2)} else {Err("denominator should not be zero")}}_ => Err("unsupported")}
}/*** 转换数字*/
fn parse_number<T: FromStr>(s: &str) -> Result<T, T::Err> {s.trim().parse::<T>()
}

3、单词计数器

描述:编写一个程序,统计给定字符串中每个单词出现的次数。忽略大小写,输出结果按照单词出现次数从高到低排序。

代码还能优化一下

use std::collections::HashMap;
use std::io::stdin;
fn main() {//  输入数字let mut map = HashMap::new();let mut input_string = String::new();stdin().read_line(&mut input_string).expect("input error");// 统计每个单词的出现次数for x in input_string.split_whitespace() {let count = map.entry(x.to_string()).or_insert(0);*count += 1;}let mut vec:Vec<_> = map.iter().collect();vec.sort_by(|entry1,entry2| entry1.1.cmp(entry2.1).reverse());for (key, value) in vec {println!("{}={}", key, value)}
}

4、斐波那契数列

描述:编写一个函数,生成指定长度的斐波那契数列。斐波那契数列的定义是:前两个数为 0 和 1,之后的每个数是前两个数之和。

提示:

  • 使用递归或迭代 实现。
  • 处理边界条件(如长度为 0 或 1 的情况)。

5、最长单词

描述:编写一个函数,接受一个字符串的引用,并返回这个字符串中最长的单词。

6、矩形面积

描述:定义一个结构体 Rectangle,包含两个字段 width 和 height。为这个结构体实现一个方法 area,计算矩形的面积。

7、多边形面积(方法和函数)

描述:定义一个枚举 Shape,包含 Circle、Square 和 Rectangle 三种形状。为每种形状实现一个方法 area,计算它们的面积。

8、命令行参数解析

描述:编写一个程序,接受命令行参数并输出这些参数。例如,运行 cargo run arg1 arg2 arg3 应该输出 arg1 arg2 arg3。

9、文件操作

描述:编写一个程序,读取一个文本文件的内容,并将其写入到另一个文件中。

10、多线程

描述:编写一个程序,启动多个线程,每个线程打印一个独特的消息。

相关文章:

rust-强化练习

钓鱼不打窝&#xff0c;钓的也不多 语言只靠看不行&#xff0c;还得练&#xff0c;下面是AI生成的一些题目&#xff0c;后续直接肝LeeCode,一举2得 1、猜数字 描述&#xff1a;创建一个简单的猜数字游戏&#xff0c;程序会随机生成一个数字&#xff0c;玩家需要猜出这个数字是…...

TF-IDF算法

TF-IDF算法详解 一、TF-IDF算法概述 TF-IDF&#xff08;Term Frequency-Inverse Document Frequency&#xff09;算法是一种常用于信息检索和文本挖掘的加权技术。其基本思想是通过评估一个词在文档中的重要性&#xff0c;来确定这个词在文档集合或语料库中的权重。TF-IDF算法…...

R语言数据分析案例29-基于ARIMA模型的武汉市房价趋势与预测研究

一、选题背景 房地产行业对于国民经济和社会及居民的发展和生活具有很大的影响&#xff0c;而房价能够体现经济运转的好坏&#xff0c;因而房价的波动牵动着开发商和购房者的关注&#xff0c;城市房价预测是一个研究的热点问题&#xff0c;研究房价对民生问题具有重要意义。 …...

面试-NLP八股文

机器学习 交叉熵损失&#xff1a; L − ( y l o g ( y ^ ) ( 1 − y ) l o g ( 1 − ( y ^ ) ) L-(ylog(\hat{y}) (1-y)log(1-(\hat{y})) L−(ylog(y^​)(1−y)log(1−(y^​))均方误差&#xff1a; L 1 n ∑ i 1 n ( y i − y ^ i ) 2 L \frac{1}{n}\sum\limits_{i1}^{n}…...

数据仓库之离线数仓

离线数据仓库&#xff08;Offline Data Warehouse&#xff09;是一种以批处理方式为主的数据仓库系统&#xff0c;旨在收集、存储和分析大量历史数据。离线数据仓库通常用于定期&#xff08;如每日、每周、每月&#xff09;更新数据&#xff0c;以支持各种业务分析、报表生成和…...

Mybatis源码解析

MybatisAutoConfiguration或者MybatisPlusAutoConfiguration核心作用是初始化工厂类SqlSessionFactory&#xff0c;其中包含属性interceptors、MapperLocations、TypeAliasesPackage、TypeEnumsPackage、TypeHandlers等。 MybatisAutoConfiguration自动装配类是由依赖&#xf…...

前端学习CSS之神奇的块浮动

在盒子模型的基础上就可以对网页进行设计 不知道盒子模型的可以看前面关于盒子模型的内容 而普通的网页设计具有一定的原始规律,这个原始规律就是文档流 文档流 标签在网页二维平面内默认的一种排序方式,块级标签不管怎么设置都会占一行,而同一行不能放置两个块级标签 行级…...

【Java】内部类、枚举、泛型

目录 1.内部类1.1概述1.2分类1.3匿名内部类(重点) 2.枚举2.1一般枚举2.2抽象枚举2.3应用1&#xff1a;用枚举写单例2.4应用2&#xff1a;标识常量 3.泛型3.1泛型认识3.2泛型原理3.3泛型的定义泛型类泛型接口泛型方法 3.4泛型的注意事项 1.内部类 1.1概述 内部类&#xff1a;指…...

LabVIEW电子类实验虚拟仿真系统

开发了基于LabVIEW开发的电子类实验虚拟仿真实验系统。该系统通过图形化编程方式&#xff0c;实现了复杂电子实验操作的虚拟化&#xff0c;不仅提高了学生的操作熟练度和学习兴趣&#xff0c;而且通过智能评价模块提供即时反馈&#xff0c;促进教学和学习的互动。 项目背景 在…...

SVM支持向量机

SVM的由来和概念 间隔最大化是找最近的那个点的距离’ 之前我们学习的都是线性超平面,现在我们要将超平面变成圈 对于非线性问题升维来解决 对于下图很难处理,我们可以将棍子立起来,然后说不定red跑到左边了,green跑到右边了(可能增加了某种筛选条件导致两个豆子分离)(只是一种…...

【Unity】RPG2D龙城纷争(二)关卡、地块

更新日期&#xff1a;2024年6月12日。 项目源码&#xff1a;后续章节发布 索引 简介地块&#xff08;Block&#xff09;一、定义地块类二、地块类型三、地块渲染四、地块索引 关卡&#xff08;Level&#xff09;一、定义关卡类二、关卡基础属性三、地块集合四、关卡初始化五、关…...

mediamtx流媒体服务器测试

MediaMTX简介 在web页面中直接播放rtsp视频流&#xff0c;重点推荐&#xff1a;mediamtx&#xff0c;不仅仅是rtsp-CSDN博客 mediamtx github MediaMTX(以前的rtsp-simple-server)是一个现成的和零依赖的实时媒体服务器和媒体代理&#xff0c;允许发布&#xff0c;读取&…...

C# 循环

C# 循环 在编程中&#xff0c;循环是一种控制结构&#xff0c;它允许我们重复执行一段代码多次。C# 提供了几种循环机制&#xff0c;以适应不同的编程需求。本文将详细介绍 C# 中常用的几种循环类型&#xff0c;包括 for 循环、while 循环、do-while 循环和 foreach 循环&…...

PHP杂货铺家庭在线记账理财管理系统源码

家庭在线记帐理财系统&#xff0c;让你对自己的开支了如指掌&#xff0c;图形化界面操作更简单&#xff0c;非常适合家庭理财、记账&#xff0c;系统界面简洁优美&#xff0c;操作直观简单&#xff0c;非常容易上手。 安装说明&#xff1a; 1、上传到网站根目录 2、用phpMyad…...

机器学习中的神经网络重难点!纯干货(上篇)

. . . . . . . . .纯干货 . . . . . . 目录 前馈神经网络 基本原理 公式解释 一个示例 卷积神经网络 基本原理 公式解释 一个示例 循环神经网络 基本原理 公式解释 一个案例 长短时记忆网络 基本原理 公式解释 一个示例 自注意力模型 基本原理…...

[DDR4] DDR1 ~ DDR4 发展史导论

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解DDR4》 内存和硬盘是电脑的左膀右臂&#xff0c; 挑起存储的大梁。因为内存的存取速度超凡地快&#xff0c; 但内存上的数据掉电又会丢失&#xff0c;一直其中缓存的作用&#xff0c;就像是我们的工…...

享元和代理模式

文章目录 享元模式1.引出享元模式1.展示网站项目需求2.传统方案解决3.问题分析 2.享元模式1.基本介绍2.原理类图3.外部状态和内部状态4.类图5.代码实现1.AbsWebSite.java 抽象的网站2.ConcreteWebSite.java 具体的网站&#xff0c;type属性是内部状态3.WebSiteFactory.java 网站…...

[英语单词] ellipsize,动词化后缀 -ize

openvswitch manual里的一句话&#xff1a;里面有使用ellipsize&#xff0c;但是查字典是没有这个单词&#xff0c;这就是创造出来的动词。将单词ellipsis&#xff0c;加动词化后缀&#xff0c;-ize。 Often we ellipsize arguments not important to the discussion, e.g.: &…...

自然资源-测绘地信专业术语,值得收藏!

自然资源-测绘地信专业术语&#xff0c;值得收藏&#xff01; 1、1954年北京坐标系 1954年我国决定采用的国家大地坐标系&#xff0c;实质上是由原苏联普尔科沃为原点的1942年坐标系的延伸。 2、1956年黄海高程系统 根据青岛验潮站1950年一1956年的验潮资料计算确定的平均海面…...

如何在小程序中实现页面之间的返回

在小程序中实现页面之间的返回&#xff0c;通常有以下几种方法&#xff0c;这些方法各有特点&#xff0c;适用于不同的场景&#xff1a; 1. 使用wx.navigateBack方法 描述&#xff1a;wx.navigateBack是微信小程序中用于关闭当前页面&#xff0c;返回上一页面或多级页面的API…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具&#xff0c;该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具&#xff0c;其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利&#xff0c;如安装和调试…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...