Rust语言编程例子 第018题:循环计算

Rust语言编程题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由n确定,加的数是几由m确定。求当m = 3, n = 6时的值。

程序分析:关键是计算出每一项的值。中间的每一项值等于前一项 乘以 10 + m。

输出格式:a + aa + aaa + ... 的值是 x

知识点:循环

fn main() {
    let m = 3;
    let n = 6;

    let mut sum = 0;
    // 中间临时值
    let mut temp = m;

    for _ in 0..n {
        sum += temp;
        temp = temp * 10 + m;
    }

    println!("a + aa + aaa + ... 的值是 {}", sum)
}

程序执行结果:

a + aa + aaa + ... 的值是 370368

Process finished with exit code 0

Rust语言编程题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步 ...