factoral中的s会超出int的范围,建议将s的类型定义为double
做这种大数运算就不能用基本数据类型,不用问肯定会溢出,不管是double还是long long.找个第三方大数运算库用吧,那里面大数都是用数组表示的,一位一个字节,不管多大数都可以。