Looking for variant approach/sketch

Optimized version...

uint32_t fac(uint8_t n) {
   static uint32_t facvals[]={1,2,6,24,120,etc};
   return facvals[n];
}