为什么错 大佬求解呀 所有数字验证下来都是一样的
查看原帖
为什么错 大佬求解呀 所有数字验证下来都是一样的
488155
ABCDEFG董楼主2021/3/24 17:28
#include<iostream>
#define R 1000
using namespace std;

void jia(int s[],int ss[]);
void jiecheng(int ss[],int n);
void chus(int ss[]);
void daozhi(int ss[],int n);
void shuchu(int s[]);
 
int temp2;  //创建一个新的数组来保存两个数组和的值 

int main(){
	int s[R] = { 0 },ss[R] = { 0 };
	int n;
	cin >> n ;
	for(int i = 1;i <= n;i++){
		jiecheng(ss,i);
		jia(s,ss);
		chus(ss);
	}
	shuchu(s);
	return 0;
}

void jiecheng(int ss[],int n){
	ss[0] = 1;
	for(int i = 2;i <= n;i++){
		int jinwei = 0;
		int temp;
		int k = 0;
		while(k < R){
			temp = jinwei;
			jinwei = (ss[k] * i + jinwei) / 10;
			ss[k] = (ss[k] * i + temp) % 10;
			k++;
		}		
	}
	temp2 = R - 1; 
	while(!ss[temp2]){
		temp2--;
	}
}

void chus(int ss[]){
	for(int i = 0;i <= R;i++){
		ss[i] = 0;
	}
}

void daozhi(int ss[],int n){
	int temp3;
	for(int i = 0;i <= n;i++,n--){
		temp3 = ss[n];
		ss[n] = ss[i];
		ss[i] = temp3;
	}
}
void jia(int a[],int b[]){
	int r = 0;
	int temp4;
	for(int i = 0;i <= R;i++){
		temp4 = a[i] + r;
		a[i] = (temp4 + b[i] ) % 10;
		r = (temp4 + b[i] ) / 10;
	}
}

void shuchu(int s[]){
	int temp3 = R - 1;
	while(!s[temp3]){
		temp3--;
	}
	for(int i = temp3;i >= 0;i--){
		cout << s[i];
	}
}
2021/3/24 17:28
加载中...