求助,做了位数对其,去了前0,本地测试没问题,但洛谷过不了,qwq
查看原帖
求助,做了位数对其,去了前0,本地测试没问题,但洛谷过不了,qwq
1125185
Misaka14573楼主2023/10/11 18:29
#include<stdio.h>
int number[1000],number1[1000],number3[1000];
	int i=0;
    int i1=0;
    int t9=0;
int text(int t)
{
	for(int i=0;i<=9;i++)
	{
		if(i+48==t)                     //将字符串转换为int类型 
		{
			return i;
		}
	}
}
void count()
{

	int t5,t6;
	int t8=0;
	(i>=i1)?(t5=i):(t5=i1);
	
	//printf("%d %d\n",i,i1);
	int x1=0;
	
	if(i>i1)
{
	for(int n=i1-1;n>=0;n--)
{
	number1[n+i-i1]=number1[n];                          //位数对齐 
	number1[n]=0;
}
}
if(i1>i)
{
		for(int n=i-1;n>=0;n--)
{
	number[n+i1-i]=number[n];
	number[n]=0;
}
}


	for(int n=t5-1;n>=0;n--)
	{
		
		
			int number11=number[n]+number1[n];
		t8+=number11;
		if(t8!=0)
		{
			t9++;
			t8=0;
		}
		
			number3[x1]+=(number11%10);
		
			x1++;
			number3[x1]+=(number11-number11%(10))/(10);
			
		
		
		
		
	}

		for(int tv5=0;tv5<i+i1;tv5++)
	{     int t2=1;
			if(number3[tv5]>=10)
			{
				
				number3[tv5+1]+=(number3[tv5]-(number3[tv5]%(t2*10)))/(t2*10);
				number3[tv5]=number3[tv5]%(t2*10);
				
			}
		
	}
	
	
}
int main()
{


	
	
	while(1)                            
	{   int t;
	char ai;
		scanf("%c",&ai);                     // 录入两个数据 
		t=(int)ai;
		if(t==10)
		{
			break;
		}
		number[i]=text(t);
		i++;
	}
		while(1)
		
		
	{   int t;
	char ai;
		scanf("%c",&ai);
		t=(int)ai;
		if(t==10)
		{
			break;
		}
		number1[i1]=text(t);
		i1++;
	}	                                
	
	count();
	
	
	
	for(int misaka=i+i1;misaka>=0;misaka--)
	{
		
		if(t9==0)
		{
			printf("%d",number3[misaka]);
			break;
		}
	       if(number3[misaka]==0)
	       {
	       	int hj=0;                                         //由于不知道非零有效数字有多少,做了个判断 
	       	for(int n=i+i1;n>=misaka;n--)
	       	{
	       		if(number3[n]!=0) hj++;
			   }
			   if(hj==0) continue;
		   }
		   
		printf("%d",number3[misaka]);
		
	}


	return 0;
	
}
2023/10/11 18:29
加载中...