竖式问题 rust解法

竖式问题
输入一个数字集合,数字之间没有空格。
找出所有形如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);
            }
        }
    }
}

你可能感兴趣的:(rust,rust,算法,开发语言)