蓝桥题目:B-30、阶乘计算

蓝桥题目:B-30、阶乘计算_第1张图片

#include 
#include 
#define MAX 3000

using namespace std;

int main(){
	int a[MAX], k;
	memset(a, 0, sizeof(a));
	cin >> k;
	a[0] = 1;
	int temp, carrier = 0;
	for(int i = 2; i <= k; ++i){
		for(int j = 0; j < MAX; ++j){
			temp = a[j]*i + carrier;
			a[j] = temp % 10;
			carrier = temp /10;
		}
	}
	
	for(int i = MAX-1; i >= 0; --i){
        if(a[i] != 0){
            for(int j = i; j >= 0; --j){
                cout << a[j];
            }
            break;
        }
    }
	
	return 0;
}

你可能感兴趣的:(Lanqiao)