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

循环小数(Repeating Decimals, ACM/ICPC World Finals 1990, UVa202)rust解法

输入整数a和b(0≤a≤3000,1≤b≤3000),输出a/b的循环小数表示以及循环节长度。例如a=5,b=43,小数表示为0.(116279069767441860465),循环节长度为21。

解法
就是模拟竖式除法

use std::{collections::HashMap, io};fn main() {let mut buf = String::new();io::stdin().read_line(&mut buf).unwrap();let mut it = buf.split_whitespace();let a: u32 = it.next().unwrap().parse().unwrap();let b: u32 = it.next().unwrap().parse().unwrap();if a % b == 0 {println!("{}.(0) {}", a / b, 1);return;}let mut m = a % b;let n = b;let mut r = 0;let mut ans = String::from(".");let mut kv = HashMap::new(); //记录被除数在第几个次上商时出现过loop {m *= 10; //产生新被除数if kv.contains_key(&m) {//同一个被除数出现第二次let pos = kv.get(&m).unwrap();r = ans.len() - pos; // 循环节长度if r > 50 {ans = ans[0..pos + 50].to_string();ans.push_str("...")}ans.insert(*pos, '('); //在第一次出现此被除数的上商位置插入'('ans.push(')');break;} else {kv.insert(m, ans.len());ans.push_str((m / n).to_string().as_str()); //上商m = m % n;if m == 0 {//如果发现被除数为0,则直接在ans后加上(0)即可ans.push_str("(0)");r = 1;break;}}}println!("{}{} {}", a / b, ans, r);
}
http://www.lryc.cn/news/192970.html

相关文章:

  • [GAMES101]透视投影变换矩阵中为什么需要改变z值
  • sklearn处理离散变量的问题——以决策树为例
  • QT 数据库表格----QSqlTableModel
  • Vue_Bug Failed to fetch extension, trying 4 more times
  • 缩短从需求到上线的距离:集成多种工程实践的稳定框架 | 开源日报 No.55
  • 基于秃鹰优化的BP神经网络(分类应用) - 附代码
  • C++笔记之std::future的用法
  • openssl学习——消息认证码原理
  • Netty使用SslHandler实现加密通信-单向认证篇
  • Jetpack:007-Kotlin中的Button
  • opencv图形绘制2
  • “华为杯”研究生数学建模竞赛2019年-【华为杯】A题:无线智能传播模型(附优秀论文及Pyhton代码实现)(续)
  • 爬虫 | 正则、Xpath、BeautifulSoup示例学习
  • nginx的location的优先级和匹配方式
  • 深入了解Spring Boot Actuator
  • 【SQL】NodeJs 连接 MySql 、MySql 常见语句
  • SSH 基础学习使用
  • JavaFX: 使用本地openjfx包
  • 【HCIA】静态路由综合实验
  • Django框架集成Celery异步-【2】:django集成celery,拿来即用,可用操作django的orm等功能
  • 获取本地缓存数据修改后,本地缓存中的值也修改问题
  • 云开发校园宿舍/企业/部门/物业故障报修小程序源码
  • K邻近算法(KNN,K-nearest Neighbors Algorithm)
  • 前端基础一:用Formdata对象来上传图片的原因
  • CSS的布局 Day03
  • nodejs+vue+elementui养老院老年人服务系统er809
  • antd表格宽度超出屏幕,列宽自适应失效
  • 布局--QT Designer
  • 2024第八届杭州国际智慧城市博览会:建筑与智能,智慧与未来
  • Text-to-SQL小白入门(八)RLAIF论文:AI代替人类反馈的强化学习