竖式问题
输入一个数字集合,数字之间没有空格。
找出所有形如abc*de(三位数乘以两位数)的算式,在完整的竖式中,所有数字都属于这个数字集合。
输出所有竖式。每个竖式前应有编号,之后应有一个空行。
样例输入:
2357
输出:
<1>
775
X 33
-----
2325
2325
-----
25575
解法:
use std::io;
fn main() {
let mut buf = String::new();
io::stdin().read_line(&mut buf).unwrap();
let mut cnt = 0;
for i in 111..=999{
for j in 11..=99{
let x = i * (j % 10);
let y = i * (j / 10);
let z = i * j;
let rlt = format!("{}{}{}{}{}", i, j, x, y, z);
let mut flg = true;
for c in rlt.chars(){
if !buf.contains(c){
flg = false;
}
}
if flg{
cnt += 1;
println!("<{}>\n{:5}\nX{:4}\n-----\n{:5}\n{:4}\n-----\n{:5}\n", cnt, i, j, x, y, z);
}
}
}
}