20分,有没有大佬帮帮啊!!!
查看原帖
20分,有没有大佬帮帮啊!!!
929891
QAQcode楼主2023/4/19 20:36
#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;	
int n,a,ints[114411]={};
long long t=1;
 
int s[10001]={};
void jc(int x)
{
    for(int i=1;i<=t;i++)
    {
        s[i]=s[i]*x;
    }
    for(int i=1;i<=t;i++)
    {
        if(s[i]>=10)
        {
            long long add=s[i]/10;
            s[i+1]+=add;
            s[i]=s[i]%10;
            if(i+1>t)
            	t=i+1;
        }
    }
}
int main(){

    s[1]=1;
	cin>>a;
	n=a;
	int i=2,j=0,intslength=0;
	while(n-i>=0){	
	 
		ints[j]=i;
	   
		n-=i; 
	    i++; j++;
		intslength++;
	
	}
	int shengyu=n;
	j=0;

	sort(ints,ints+intslength);
	while(shengyu>0){
		if(j==intslength)j=0;
		if(ints[j]+1!=ints[j+1]){
	     	ints[j]+=1;
	      	j++;
	    	shengyu--;
        }else{
        	j++;
		}
	}
	if(intslength==1){
		ints[0]-=1;
		ints[1]=1;
		intslength+=1;
	} 
	sort(ints,ints+intslength);
	for(int i=0;i<intslength;i++)cout<<ints[i]<<" ";
	for(int i=0;i<intslength;i++)
	{
		jc(ints[i]);
	}  
	cout<<endl;
	for(int i=t;i>0;i--){
		cout<<s[i];
	}
	
} 
2023/4/19 20:36
加载中...