How to find the subarray whose sum is equal to a given number N in Rust

1 Answer

0 votes
#![allow(non_snake_case)]

fn PrintSubarrayWithSumEqualToN(arr : [usize; 9], N : usize) {
    let size : usize = arr.len();
    {
        let mut i : usize = 0;
        while i < size {
            let mut current_sum : usize = arr[i as usize];
            if current_sum == N {
                print!("Sum found at index: {}", i);
                return;
            }
            else {
                {
                    let mut j : usize = i + 1;
                    while j < size {
                        current_sum += arr[j as usize];
                        if current_sum == N {
                            println!("Sum found between index {} and {}", i, j);
                            {
                                let mut k : usize = i;
                                while k <= j {
                                    print!("{} ", arr[k as usize]);
                                    k += 1;
                                }
                            }
                            return;
                        }
                        else if current_sum > N {
                                break;
                            }
                        j += 1;
                    }
                }
            }
            i += 1;
        }
    }
    print!("No subarray found");
}
    
fn main()
{
    let arr: [usize; 9] = [2, 5, 8, 9, 1, 7, 12, 21, 19];
    
    let N : usize = 52;
    
    PrintSubarrayWithSumEqualToN(arr, N);
}






/*
run:
  
Sum found between index 6 and 8
12 21 19 
  
*/
 

 



answered Apr 16, 2023 by avibootz
...