Решение на Дигитален корен от Любослав Карев
Резултати
- 20 точки от тестове
- 1 бонус точка
- 21 точки общо
- 6 успешни тест(а)
- 0 неуспешни тест(а)
Код
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20200111-2173579-26mo5/solution)
warning: unused variable: `E`
--> src/lib.rs:17:13
|
17 | Err(E) => return None,
| ^ help: consider prefixing with an underscore: `_E`
|
= note: `#[warn(unused_variables)]` on by default
warning: variable `E` should have a snake case name
--> src/lib.rs:17:13
|
17 | Err(E) => return None,
| ^ help: convert the identifier to snake case: `e`
|
= note: `#[warn(non_snake_case)]` on by default
warning: unused variable: `E`
--> src/lib.rs:17:13
|
17 | Err(E) => return None,
| ^ help: consider prefixing with an underscore: `_E`
|
= note: `#[warn(unused_variables)]` on by default
warning: variable `E` should have a snake case name
--> src/lib.rs:17:13
|
17 | Err(E) => return None,
| ^ help: convert the identifier to snake case: `e`
|
= note: `#[warn(non_snake_case)]` on by default
Finished test [unoptimized + debuginfo] target(s) in 4.33s
Running target/debug/deps/solution-a73e64ec87929bd0
running 5 tests
test tests::binary_tests ... ok
test tests::decimal_tests ... ok
test tests::hex_tests ... ok
test tests::octal_tests ... ok
test tests::test_basic ... ok
test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Running target/debug/deps/solution_test-38971695424b36d5
running 6 tests
test solution_test::test_binary ... ok
test solution_test::test_decimal_basic ... ok
test solution_test::test_hex_basic ... ok
test solution_test::test_invalid ... ok
test solution_test::test_octal_basic ... ok
test solution_test::test_zeroes ... ok
test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
Doc-tests solution
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
История (3 версии и 2 коментара)
Любослав качи решение на 03.11.2019 18:32 (преди около 6 години)
Любослав качи решение на 03.11.2019 21:35 (преди около 6 години)
Интересно решение -- очаквах да го разбиете на символи, но и това работи :). Бих се опитал да използвам по-ясни имена. formula_calculate примерно е доста общо име на функция, която може да прави каквото и да е. Може би sum_digits щеше да е по-ясно. Вместо k, може би digit_count или max_digits.
В математическите формули се използват често еднобуквени променливи, отчасти понеже може да са доста абстрактни, отчасти защото имаш дефиниции с думи. Примерно избираме епсилон, такова че <обяснения>. В код обикновено се работи с конкретни неща, които могат да имат конкретни имена, а ако нямат, и просто се смята някаква обща формула, може да сложиш по един коментар някъде за самата формула и какво значат компонентите ѝ.
Добро решение. Получаваш и бонус точка за тестовете, макар че съм малко разочарован, че не си тествал с 0, освен двоичния случай -- може да е потенциално интересен edge case. За бъдещи домашни вероятно ще съм по-придирчив към тестове що се отнася до бонус точки :).

Интересно решение -- очаквах да го разбиете на символи, но и това работи :). Бих се опитал да използвам по-ясни имена.
formula_calculateпримерно е доста общо име на функция, която може да прави каквото и да е. Може биsum_digitsщеше да е по-ясно. Вместоk, може биdigit_countилиmax_digits.В математическите формули се използват често еднобуквени променливи, отчасти понеже може да са доста абстрактни, отчасти защото имаш дефиниции с думи. Примерно
избираме епсилон, такова че <обяснения>. В код обикновено се работи с конкретни неща, които могат да имат конкретни имена, а ако нямат, и просто се смята някаква обща формула, може да сложиш по един коментар някъде за самата формула и какво значат компонентите ѝ.