Я просто изучаю ржавчину, отныне у этого вопроса есть, вероятно, какой-то тривиальный ответ.Доступ к отдельным цифрам BigUint в ржавчине
Я хочу получить доступ к отдельным цифрам ржавчины BigUint. Это для проекта Эйлера головоломка, запрашивающая сумму этих цифр.
Я сделал это, как показано ниже:
let mut f = func(100);
let mut total: BigUint = Zero::zero();
while f > FromPrimitive::from_uint(0).unwrap() {
let digit = f % FromPrimitive::from_uint(10).unwrap();
f = f/FromPrimitive::from_uint(10).unwrap();
total = total + digit;
}
println!("");
println!("Sum of digits of func(100) = {}", total);
Это работает, но это довольно сложно, потому что я считаю, что эти цифры internaly хранятся в виде массива, но я не могу получить доступ к ним непосредственно, поскольку основным данным член закрыт.
Есть ли способ сделать это более простым способом?
Я недавно сделал это, выполнив кастинг на String и итерируя эти цифры. –
@ C.Quilley: Это может быть правильный путь. Мне интересно, являются ли внутренние BigDigits фактически базовыми 10. Если не вывод строки, это, конечно, путь. Не могли бы вы дать ответ? – kriss
обычно я был бы рад, но я на работе, и у меня нет источника. –