みんなありがとう、なんとなく再帰できたよ。やり方あってるかわからんけども
以下お試しプログラム
ttps://paiza.jp/works/mondai/dp_primer/dp_primer_stairs_boss

use std::*;

fn main() {
 let mut str = String::new();
 io::stdin().read_line(&mut str).unwrap();
 let mut nums0: Vec<i32> = str.trim().split(" ").map(|it| it.parse().unwrap()).collect();

 let mut test = Test { nums: nums0 };
 println!("{}", test.calc(0));
}

pub struct Test {
 nums: Vec<i32>,
}

impl Test {
 pub fn calc(&mut self, id: i32) -> i32 {
  if id == self.nums[0] { return 1; }

  let mut res0: i32 = 0;
  for i in 1..=3 {
   if id + self.nums[i] <= self.nums[0] {
    res0 += self.calc(id + self.nums[i as usize]);
   }
  }
   return res0;
  }
}