From bc42f5f33b6146b44c2dfd9bff7c122ff6615d3b Mon Sep 17 00:00:00 2001 From: Jonas Berlin Date: Tue, 25 Feb 2020 23:41:23 +0200 Subject: pwc049 / task 1 --- challenge-049/xkr47/raku/ch-1.raku | 9 +++++++++ challenge-049/xkr47/rust/Cargo.toml | 12 ++++++++++++ challenge-049/xkr47/rust/ch-1.rs | 14 ++++++++++++++ 3 files changed, 35 insertions(+) create mode 100755 challenge-049/xkr47/raku/ch-1.raku create mode 100644 challenge-049/xkr47/rust/Cargo.toml create mode 100644 challenge-049/xkr47/rust/ch-1.rs diff --git a/challenge-049/xkr47/raku/ch-1.raku b/challenge-049/xkr47/raku/ch-1.raku new file mode 100755 index 0000000000..2bde510305 --- /dev/null +++ b/challenge-049/xkr47/raku/ch-1.raku @@ -0,0 +1,9 @@ +#!/usr/bin/env perl6 + +sub MAIN(Int $multiplier) { + (1 .. ∞) + .map(* * $multiplier) + .grep(/^<[01]>+$/) + .head(1) + .say() +} diff --git a/challenge-049/xkr47/rust/Cargo.toml b/challenge-049/xkr47/rust/Cargo.toml new file mode 100644 index 0000000000..0cc7929d6a --- /dev/null +++ b/challenge-049/xkr47/rust/Cargo.toml @@ -0,0 +1,12 @@ +[package] +name = "pwc-049" +version = "0.1.0" +authors = ["Jonas Berlin "] +edition = "2018" + +[dependencies] +regex = "1.3.4" + +[[bin]] +name = "ch-1" +path = "ch-1.rs" diff --git a/challenge-049/xkr47/rust/ch-1.rs b/challenge-049/xkr47/rust/ch-1.rs new file mode 100644 index 0000000000..d93fa34148 --- /dev/null +++ b/challenge-049/xkr47/rust/ch-1.rs @@ -0,0 +1,14 @@ +use std::env; +use regex::Regex; + +fn main() { + let multiplier = env::args().skip(1).next().expect("Please give multiplier as argument"); + let multiplier: u64 = multiplier.parse().expect("Bad multiplier specified as argument"); + let ones_and_zeroes = Regex::new(r"^[01]+$").unwrap(); + println!("{}", + (1_u64..) + .map(|num| num * multiplier) + .filter(|num| ones_and_zeroes.is_match(&num.to_string())) + .next() + .unwrap()); +} -- cgit