Submission #3230304
Source Code Expand
#![allow(unused_imports)] use std::io::*; use std::fmt::*; use std::str::*; use std::cmp::*; use std::collections::*; pub trait InputValue { fn parse(s: &str) -> Self; } pub fn read<T: InputValue>() -> T { let mut buf = String::new(); let _ = stdin().read_line(&mut buf); T::parse(&buf.trim()) } pub fn readn<T: InputValue>(n: usize) -> Vec<T> { let mut vec = vec![]; for _ in 0..n { vec.push(read()); } vec } pub fn readnc<T: InputValue>() -> Vec<T> { let mut vec = vec![]; let line: String = read(); for token in line.split_whitespace() { vec.push(T::parse(token)); } vec } macro_rules! parse_single_value { ($($t:ty),*) => { $( impl InputValue for $t { fn parse(s: &str) -> $t { s.parse().unwrap() } } )* } } parse_single_value!(i32, i64, f32, f64, usize, String); macro_rules! parse_tuple { ($($t:ident),*) => { impl<$($t),*> InputValue for ($($t),*) where $($t: InputValue),* { fn parse(s: &str) -> ($($t),*) { let mut tokens = s.split_whitespace(); let t = ($($t::parse(tokens.next().unwrap())),*); t } } } } parse_tuple!(A, B); parse_tuple!(A, B, C); parse_tuple!(A, B, C, D); parse_tuple!(A, B, C, D, E); // === fn main() { let n: usize = read(); if n % digit_sum(n) == 0 { println!("Yes"); } else { println!("No"); } } fn digit_sum(x: usize): usize { let mut sum = 0; let mut x = x; while x >= 1 { sum += x % 10; x /= 10; } return sum; }
Submission Info
Submission Time | |
---|---|
Task | B - Harshad Number |
User | hamadu |
Language | Rust (1.15.1) |
Score | 0 |
Code Size | 1656 Byte |
Status | CE |
Compile Error
error: expected one of `->`, `where`, or `{`, found `:` --> ./Main.rs:73:23 | 73 | fn digit_sum(x: usize): usize { | ^ error: aborting due to previous error