# Assume the availability of a function called fact. The function receives an int argument and returns an int value. If the argument is one or smaller, it returns the integer value one. Otherwise it returns the product of all the integers from one to its argument. So the value of fact(4) is 1*2*3*4 and the value of fact(10) is 1*2*3*4*5*6*7*8*9*10. Assume further that the variable k has been declared and initialized to a positive integer. Assume further that the variable x has been declared as an integer type. Write a statement that assigns x the value k*(k-1)*(k-2)*…*3*2*1 by calling the fact function and multiplying its return value by k. Note: your solution must include multiplying fact’s return value by k here.

### CHALLENGE:

Assume the availability of a function called fact. The function receives an int argument and returns an int value. If the argument is one or smaller, it returns the integer value one. Otherwise it returns the product of all the integers from one to its argument. So the value of fact(4) is 1*2*3*4 and the value of fact(10) is 1*2*3*4*5*6*7*8*9*10. Assume further that the variable k has been declared and initialized to a positive integer. Assume further that the variable x has been declared as an integer type. Write a statement that assigns x the value k*(k-1)*(k-2)*…*3*2*1 by calling the fact function and multiplying its return value by k. Note: your solution must include multiplying fact’s return value by k here.

### SOLUTION:

```

x = k * fact(k - 1);

```