Bird
Raised Fist0
Rustprogramming~20 mins

Arithmetic operators in Rust - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
๐ŸŽ–๏ธ
Rust Arithmetic Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
โ“ Predict Output
intermediate
2:00remaining
What is the output of this Rust code using arithmetic operators?
Consider the following Rust code snippet. What will it print when run?
Rust
fn main() {
    let a = 10;
    let b = 3;
    let result = a % b + a / b * b;
    println!("{}", result);
}
A10
B3
C9
D1
Attempts:
2 left
๐Ÿ’ก Hint
Remember the order of operations: division and multiplication happen before addition.
โ“ Predict Output
intermediate
2:00remaining
What is the value of x after this Rust code runs?
Look at this Rust code. What is the final value of x?
Rust
fn main() {
    let mut x = 5;
    x += 3 * 2 - 4 / 2;
    println!("{}", x);
}
A8
B11
C9
D10
Attempts:
2 left
๐Ÿ’ก Hint
Calculate the expression on the right side first, then add to x.
โ“ Predict Output
advanced
2:00remaining
What does this Rust code print?
Analyze this Rust code snippet and determine its output.
Rust
fn main() {
    let a = 7;
    let b = 2;
    let c = a / b;
    let d = a as f64 / b as f64;
    println!("{} {}", c, d);
}
A3 3.5
B3 3
C3.5 3
D3.5 3.5
Attempts:
2 left
๐Ÿ’ก Hint
Integer division truncates, but casting to float allows decimal division.
โ“ Predict Output
advanced
2:00remaining
What is the output of this Rust code with mixed arithmetic?
What will this Rust program print?
Rust
fn main() {
    let x = 4;
    let y = 3;
    let z = (x + y) * (x - y) / y;
    println!("{}", z);
}
A7
B2
C1
D3
Attempts:
2 left
๐Ÿ’ก Hint
Calculate inside parentheses first, then multiply, then divide.
โ“ Predict Output
expert
2:00remaining
What is the output of this Rust code involving overflow with wrapping arithmetic?
Consider this Rust code using wrapping_add. What will it print?
Rust
fn main() {
    let max = u8::MAX; // 255
    let result = max.wrapping_add(10);
    println!("{}", result);
}
A0
B265
C10
D9
Attempts:
2 left
๐Ÿ’ก Hint
Wrapping addition wraps around on overflow instead of panicking.

Practice

(1/5)
1. Which arithmetic operator in Rust is used to find the remainder of a division?
easy
A. The - operator
B. The / operator
C. The * operator
D. The % operator

Solution

  1. Step 1: Understand the meaning of each operator

    The / operator divides, * multiplies, - subtracts, and % gives the remainder after division.
  2. Step 2: Identify the operator for remainder

    The % operator returns the remainder when one number is divided by another.
  3. Final Answer:

    The % operator -> Option D
  4. Quick Check:

    Remainder operator = % [OK]
Hint: Remainder always uses % in math [OK]
Common Mistakes:
  • Confusing / with %, thinking / gives remainder
  • Using * or - for remainder
  • Mixing up operator symbols
2. Which of the following is the correct way to write multiplication of two variables a and b in Rust?
easy
A. a * b
B. a x b
C. a . b
D. a & b

Solution

  1. Step 1: Recall Rust arithmetic syntax

    Rust uses * for multiplication, not x, ., or &.
  2. Step 2: Confirm correct operator

    The expression a * b correctly multiplies a and b.
  3. Final Answer:

    a * b -> Option A
  4. Quick Check:

    Multiplication operator = * [OK]
Hint: Use * for multiplication in Rust [OK]
Common Mistakes:
  • Using x instead of *
  • Using . or & which are not arithmetic
  • Confusing syntax with other languages
3. What is the output of the following Rust code?
let x = 10;
let y = 3;
let result = x / y;
println!("{}", result);
medium
A. 4
B. 3.3333
C. 3
D. Syntax error

Solution

  1. Step 1: Understand integer division in Rust

    Both x and y are integers, so x / y performs integer division, dropping decimals.
  2. Step 2: Calculate integer division

    10 divided by 3 is 3.3333, but integer division truncates to 3.
  3. Final Answer:

    3 -> Option C
  4. Quick Check:

    Integer division truncates decimals = 3 [OK]
Hint: Integer division drops decimals, use floats for precise result [OK]
Common Mistakes:
  • Expecting decimal result with integer division
  • Confusing integer and float division
  • Assuming syntax error due to println!
4. Identify the error in this Rust code snippet:
let a = 5;
let b = 2;
let c = a / b.0;
println!("{}", c);
medium
A. Variables a and b are not declared
B. Using .0 on integer causes error
C. Missing semicolon after println!
D. Division operator / is invalid

Solution

  1. Step 1: Analyze the expression a / b.0

    The code tries to access .0 on b, which is an integer, not a tuple or struct.
  2. Step 2: Understand why .0 causes error

    Only tuples or structs have fields like .0; integers do not, so this causes a compile error.
  3. Final Answer:

    Using .0 on integer causes error -> Option B
  4. Quick Check:

    Integer has no .0 field = error [OK]
Hint: Only tuples/structs have .0, not integers [OK]
Common Mistakes:
  • Thinking / is invalid operator
  • Missing semicolon causes error
  • Assuming variables are undeclared
5. You want to calculate the average of two integers a and b in Rust and get a float result. Which code snippet correctly does this?
hard
A. let avg = (a + b) as f64 / 2.0;
B. let avg = (a + b) / 2.0;
C. let avg = (a + b) / 2;
D. let avg = (a + b) / 2 as f64;

Solution

  1. Step 1: Understand type conversion for float division

    To get a float result, convert integers to float before division.
  2. Step 2: Check each option for correct syntax and types

    let avg = (a + b) / 2; does integer division, no float result. let avg = (a + b) as f64 / 2.0; converts sum to f64, divides by 2.0 (float), correct. let avg = (a + b) / 2.0; divides integer sum by float 2.0 without conversion, invalid. let avg = (a + b) / 2 as f64; tries to cast 2 to f64 before division (due to `as` precedence), invalid.
  3. Final Answer:

    let avg = (a + b) as f64 / 2.0; -> Option A
  4. Quick Check:

    Convert to float before dividing by float [OK]
Hint: Cast sum to float before dividing by float [OK]
Common Mistakes:
  • Dividing integers by float without cast
  • Casting after division
  • Using integer division expecting float result
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard