蒟蒻80求助
查看原帖
蒟蒻80求助
1139975
封禁用户楼主2024/1/19 15:37

如题,#2 #10 错了 代码:

#include<bits/stdc++.h>
using namespace std;
int a[200]; 
int b[200];
void print(int n) {
	for (int i=n;i>=1;i--) {
		cout<<b[i];
	}
}

int mul(int c[],int n) {
	int len=1;
	b[1]=1;
	for(int i=1;i<=n;i++) {
		for (int j=1;j<=len;j++){
			b[j]*=c[i];
		}
		for (int j=1;j<=len+1;j++){
			b[j+1]+=b[j]/10;
			b[j]%=10; 
		}
		len+=3;
		for(;!b[len];len--){}
	}
	return len;
}

int main() {
	int n,j=1,sum=0;
	cin>>n;
	if(n==3){
		cout<<"1 2"<<endl<<2;
		return 0;
	}
	if(n==4){
		cout<<"1 3"<<endl<<3;
		return 0;
	} 
	for (int i=2;sum<n;i++,j++) {
		a[j]=i;
		sum+=i;
	}
	int gap=sum-n;
	if (gap==0){
		j--;
		cout<<2;
		for(int i=2;i<=j;i++) {
			cout<<' '<<a[i];
		}
		cout<<endl;
		print(mul(a,j));
	}
	else if(gap==1) {
		j--;
		for(int i=2;i<=j;i++) {
			a[i-1]=a[i];
		}
		a[j-1]++;
		cout<<a[1];
		for(int i=2;i<j;i++) {
			cout<<' '<<a[i];
		}
		cout<<endl;
		print(mul(a,j-1));
	}
	else {
		j--;
		for(int i=gap-1;i<=j-1;i++){
			a[i]=a[i+1];
		}
		cout<<a[1];
		for(int i=2;i<j;i++) {
			cout<<' '<<a[i];
		}
		cout<<endl;
		print(mul(a,j-1));
	}
	return 0;
}

不管对没对,本蒟蒻都会给关注哒!

2024/1/19 15:37
加载中...