HDU - 5938 Four Operations

题意:

不想说

 

坑点;

初始答案应该设置为一个极小的负数,不能设置为0。

 

代码:

#include <bits/stdc++.h>
using namespace std;
#include<stack>
#include<cstring>
char s[30];
typedef long long LL;
int a[30];
int ii=0;
void deal(){
	scanf("%s",s);
	int len=strlen(s);
	LL zans=-1e10;
	for (int i=0;i<len;i++) a[i]=s[i]-'0';
	
	
	for (int q=0; ; q++){
	LL ans,add,mins,mult,div;
	
	
	
	div=0;
	for (int i=len-1-q; i < len; i++) div = div * 10 + a[i];
	mult=a[len-2-q];
	mins=a[len-3-q];
	LL cheng=mins*mult;
	LL chu=cheng/div;
	
	
	LL add1,ans1,ans2,add2;
	add1=ans1=ans2=add2=0;
	
	
	
	
	add1=a[len-4-q];
	for (int i=0;i < len - 4 - q; i++) ans1=ans1*10+a[i];
	ans1+=add1;
	
	
	
	
	
	add2=a[0];
	for (int i=1;i<len-4-q+1;i++) ans2=ans2*10+a[i];
	ans2+=add2;
	
//	cout<<q<<" "<<ans1<<" "<<ans2<<" "<<div<<endl;
	ans2=ans2-chu;
	ans1=ans1-chu;
	
	
	if (zans<ans1) zans=ans1;
	if (zans<ans2) zans=ans2;
	if (len-4-q <= 1) break;
	
	
	}
	printf("Case #%d: %I64d\n",ii,zans);
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--){
		ii++;
		deal();
	}
    return 0;
}

  

转载于:https://www.cnblogs.com/xfww/p/7710868.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值