summaryrefslogtreecommitdiff
path: root/sem2/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sem2/src/main.rs')
-rw-r--r--sem2/src/main.rs44
1 files changed, 38 insertions, 6 deletions
diff --git a/sem2/src/main.rs b/sem2/src/main.rs
index f60350d..ed33b43 100644
--- a/sem2/src/main.rs
+++ b/sem2/src/main.rs
@@ -2,10 +2,42 @@ use inquire::Text;
mod mpn;
fn main() {
- let a = Text::new("Введите число:").prompt().unwrap();
- let a = mpn::Number::parse(&a).unwrap();
- let b = Text::new("Введите число:").prompt().unwrap();
- let b = mpn::Number::parse(&b).unwrap();
- let c = a + b;
- println!("Number: {}", c);
+ let radix = match Text::new("Введите основание системы счисления:").prompt()
+ {
+ Ok(text) => text,
+ Err(_) => return,
+ };
+ let radix = match radix.parse::<usize>() {
+ Ok(number) => number,
+ Err(_) => {
+ println!("Основание должно быть десятичным числом");
+ return;
+ }
+ };
+
+ let a = match Text::new("Введите число:").prompt() {
+ Ok(text) => text,
+ Err(_) => return,
+ };
+ let a = match mpn::Number::parse(&a, radix) {
+ Ok(number) => number,
+ Err(what) => {
+ println!("{what}");
+ return;
+ }
+ };
+
+ let b = match Text::new("Введите число:").prompt() {
+ Ok(text) => text,
+ Err(_) => return,
+ };
+ let b = match mpn::Number::parse(&b, radix) {
+ Ok(number) => number,
+ Err(what) => {
+ println!("{what}");
+ return;
+ }
+ };
+
+ println!("Сумма: {}", a + b);
}