Back to slide -- Keyboard shortcut: 'u'        next -- Keyboard shortcut: 'n'          loop-invariants/1/div.cs - Division by repeated subtraction.Lecture 13 - slide 32 : 32
Program 1

using System;

class LoopInvariantDemo{

  static int Div(int x, int y){
    // require x >= 0 && y > 0;   

    int rest = x;
    int quotient = 0;
    
    while (rest >= y) {
      // invariant rest + quotient * y = x;   
      rest = rest - y;
      quotient = quotient + 1;
    }
    return quotient;
    // ensure  rest + quotient * y = x && rest < y && rest >= 0;   
  } 

  public static void Main(){
    Console.WriteLine("Div({0}, {1}) = {2}", 10, 2, Div(10, 2));
    Console.WriteLine("Div({0}, {1}) = {2}", 100, 25, Div(100, 25));
    Console.WriteLine("Div({0}, {1}) = {2}", 1234567, 89, Div(1234567, 89));
  }

}