90 特别神奇 求大佬看看
查看原帖
90 特别神奇 求大佬看看
1515762
LCY_LCY_LCY楼主2025/1/21 21:04
#include<stdio.h>
#include<math.h>
#include<string.h>
int count(int a)
{
	int n=0;
	if(a<0)
	{
		a=-a;
		n=1;
	}
	else if(a==0)
	{
	    n=1;
	}
	while(a>0)
	{
		n++;
		a=a/10;
	}
	return n;
}
int caculate(int a,int b,char c)
{
	if(c=='a')
	return a+b;
	else if(c=='b')
	return a-b;
	else if(c=='c')
	return a*b;


}
char change(char a)
{
	char m;
	if(a=='a')
	m='+';
	else if(a=='b')
	m='-';
	else if(a=='c')
	m='*';
	return m;
}
int main()
{
	int i,j,n;
	int sum=0;
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++)
	{
		
	
	//char l=getchar();
	char l2,l;
	l=getchar();
	int a,b;
	scanf("%d%d",&a,&b);
	getchar();
	if(l>='a'&&l<='c')
	{
		printf("%d%c%d=%d\n",a,change(l),b,caculate(a,b,l));
		sum=count(a)+count(b)+count(caculate(a,b,l))+2;
		printf("%d\n",sum);
		l2=l;//记录
	
	}
	else 
	{
		a=(l-'0')*pow(10,count(a))+a;
		l=l2;
		printf("%d%c%d=%d\n",a,change(l),b,caculate(a,b,l));
		sum=count(a)+count(b)+count(caculate(a,b,l))+2;
		printf("%d\n",sum);
		
	}
	
	
	}
	
	return 0;
}

输入 4 c 5959 5822 727 2106 8801 6103 1074 7558

输出 4 c 5959 5822 59595822=34693298 18 727 2106 7272106=1531062 16 8801 6103 88016103=53712503 18 1074 7558 1747558=1315092//注意看 这里居然变成了174 这是为什么 16

2025/1/21 21:04
加载中...