求大佬解答
查看原帖
求大佬解答
1420718
nbq202412904430楼主2024/10/7 22:09
#include <stdio.h>
#include<string.h>
#include<math.h>
void cf(char s[9876],int u)
{
	int ls=strlen(s);
	int s1[9876]={0};
	for(int i=0;i<ls;i++)
	{
		s1[i]=s[i]-'0';
		s1[i]*=u;
	}
	for(int i=0;i<ls;i++)
	{
		if(s1[i]>9)
		{
			s1[i+1]+=s1[i]/10;
			s1[i]%=10;
			if(i+2>ls)ls=i+2;
		}
	}
	for(int i=0;i<ls;i++)
	{
		s[i]=s1[i]+'0';
	}
	s[ls]='\0';
}
int main()
{
	int n,i,k=0,a[10000]={0};
	scanf("%d",&n);
	char s[98765];
	s[0]='1';
	s[1]='\0';
	if(n<=4)printf("%d",n);
	else 
	{
		for(i=2;i<n;i++)
		{
			a[i]=i;
			k+=i;
			if(k>=n)break;
		}
		if(k-n==1)
		{
			a[2]=0;
			a[i+1]=i+1;
			a[i]=0;
		}
		else a[k-n]=0;
		for(int j=2;j<n;j++)
		{
			if(a[j]!=0)cf(s,a[j]);
		}
		int ls=strlen(s);
		for(int j=ls-1;j>=0;j--)
		{
			printf("%c",s[j]);
		}
	}
	
    return 0;
}

这题不知道为什么我没有测试点,全红,不知道怎么办

2024/10/7 22:09
加载中...