1 条题解

  • 0
    @ 2025-2-14 20:50:07

    C :

    #include<stdio.h>
    #include<stdlib.h>
    #define SIZE 51
    int main()
    {
    	int data[SIZE]={0};
    	int index=1;
    	int n;
    	int i,j,k;
    	data[1]=1;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    		for(j=1;j<=index;j++)
    		{
    			data[j]=data[j]*i;
    		}
    		for(k=1;k<index;k++)
    		{
    			if(data[k]>=10)
    			{
    				data[k+1]=data[k+1]+data[k]/10;
    				data[k]=data[k]%10;
    			}
    		}
    		while(data[index]>=10&&index<=SIZE-1)
    		{
    			data[index+1]=data[index]/10;
    			data[index]=data[index]%10;
    			index++;
    		}
    		if(index<=SIZE-1)
    		{
    			for(j=index;j>0;j--)
    			{
    				printf("%d",data[j]);
    			}
    			printf("\n");
    		}
    		else 
    		{
    			printf("Over flow!\n");
    			exit(1);
    		}
    	}
    	return 0;
    }
    
    

    C++ :

    #include<stdio.h>
    #include<stdlib.h>
    #define SIZE 51
    int main()
    {
    	int data[SIZE]={0};
    	int index=1;
    	int n;
    	int i,j,k;
    	data[1]=1;
    	scanf("%d",&n);
    	for(i=1;i<=n;i++)
    	{
    		for(j=1;j<=index;j++)
    		{
    			data[j]=data[j]*i;
    		}
    		for(k=1;k<index;k++)
    		{
    			if(data[k]>=10)
    			{
    				data[k+1]=data[k+1]+data[k]/10;
    				data[k]=data[k]%10;
    			}
    		}
    		while(data[index]>=10&&index<=SIZE-1)
    		{
    			data[index+1]=data[index]/10;
    			data[index]=data[index]%10;
    			index++;
    		}
    		if(index<=SIZE-1)
    		{
    			for(j=index;j>0;j--)
    			{
    				printf("%d",data[j]);
    			}
    			printf("\n");
    		}
    		else 
    		{
    			printf("Over flow!\n");
    			exit(1);
    		}
    	}
    	return 0;
    }
    
    
    • 1

    第8章:数组8.18(选做)大数的存储问题

    信息

    ID
    401
    时间
    1000ms
    内存
    2MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者