Bird
Raised Fist0
Rustprogramming~5 mins

Arithmetic operators in Rust

Choose your learning style10 modes available
Introduction

Arithmetic operators help you do math with numbers in your program. They let you add, subtract, multiply, and divide values easily.

Calculating the total price of items in a shopping cart.
Finding the average score of a game or test.
Updating a counter when something happens multiple times.
Converting units, like inches to centimeters.
Splitting a bill evenly among friends.
Syntax
Rust
let sum = a + b;
let difference = a - b;
let product = a * b;
let quotient = a / b;
let remainder = a % b;

Use + for addition, - for subtraction, * for multiplication, / for division, and % for remainder (modulus).

Division between integers will give an integer result (rounded down).

Examples
Adds two numbers.
Rust
let a = 10;
let b = 3;
let sum = a + b;  // 13
Subtracts b from a.
Rust
let a = 10;
let b = 3;
let difference = a - b;  // 7
Multiplies a and b.
Rust
let a = 10;
let b = 3;
let product = a * b;  // 30
Divides a by b and finds the remainder.
Rust
let a = 10;
let b = 3;
let quotient = a / b;  // 3
let remainder = a % b;  // 1
Sample Program

This program shows how to use all the basic arithmetic operators with two numbers and prints the results.

Rust
fn main() {
    let a = 15;
    let b = 4;

    let sum = a + b;
    let difference = a - b;
    let product = a * b;
    let quotient = a / b;
    let remainder = a % b;

    println!("Sum: {}", sum);
    println!("Difference: {}", difference);
    println!("Product: {}", product);
    println!("Quotient: {}", quotient);
    println!("Remainder: {}", remainder);
}
OutputSuccess
Important Notes

Remember that dividing integers truncates the decimal part.

Use floating-point numbers (like f32 or f64) if you want decimal results.

Summary

Arithmetic operators let you do basic math in Rust.

Use +, -, *, /, and % for addition, subtraction, multiplication, division, and remainder.

Integer division drops decimals; use floats for precise division.

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