求教如何解决下类问题!

在C++语言中,short类型变量的最大值是32767,如果将一个大于32767的数存入一个short类型变量,那么,这个变量中实际保存的将是一个小于32767的值。
根据这个特性,用c++写一个程序,对于满足条件n!≤32767的一切n,计算并输出n!的值。

这个主要是数据溢出的问题,定义一个short类型的变量用来保存n!的值,如果这个变量的值小于0(即n!的值溢出了),则推出n!的计算

 void print_val(short n, short number)
{
    // ...
}

void compute(void)
{
    short n = 1;
    short num = 1;

    for (; ;) {
        num *= n;
        if (num < 0)
            break;

        print_val(n, num);
        n++;
    }
}