brophp框架做网站模板seo排名优化公司
钓鱼不打窝,钓的也不多
语言只靠看不行,还得练,下面是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 的情况)。