4535: T2 小盟爱学习

题目描述

程小盟上小学一年级了,现在他开始学习乘法。经过老师的悉心教导, 程小盟已经能够算出  a, b两个数字的乘积了。结果老师发现, 程小盟是偷偷拿到了老师的练习题答案,背下答案之后才 说对了乘积!

 

老师非常愤怒,决定给程小盟出更多的乘法题目,现在老师打算对  a,b这两个数字的数位进 行交换,这样就可以构造出新的数字来考程小盟乘法了。

 

例如原来的两个数字  a, b是  1234  和  5678,那么他可以交换两个数字的千位,使得两个 数字变成  5234  和  1678,然后再计算它们的乘积。

 

老师只会交换相同位置的数位,例如交换两个数字的千位,或者交换两个数字的百位,但是    不能交换一个数字的千位和另一个数字的百位(例如交换出  6234  和  5178  是不被允许的)。 老师可以进行无限次交换操作最终得到新的数字  a1, b,请问新的两个数字的乘积最大是多少。

输入格式

输入仅包含两个正整数a, b2T,保证两个数字的位数相同。

输出格式

输出一行一个整数表示答案。

样例输入content_copy

172 383

样例输出content_copy

68076

提示/说明

交换百位,得到  372  和  183;或者交换十位和个位,得到  183  和  372,乘积是  68076


 

交换个位,或者交换百位和十位。

测试点编号

a, b ≤

特殊性质

1 − 2

9

 

3 − 4

99

 

5 − 6

999

 

7

999999

数位中不包含 0

8 − 10

999999

 

/upload/file/20240817/20240817113500_57961.zip

/upload/file/20240817/20240817113508_13105.zip

/upload/file/20240817/20240817113517_23582.zip

#include<bits/stdc++.h>
using namespace std;
int g[4],s[4],b[4],q[4],w[4],sw[4];
int main(){
	int input1,input2;
	cin>>input1>>input2;
	g[0]=input1/1%10;
	g[1]=input2/1%10;
	s[0]=input1/10%10;
	s[1]=input2/10%10;
	b[0]=input1/100%10;
	b[1]=input2/100%10;
	q[0]=input1/1000%10;
	q[1]=input2/1000%10;
	w[0]=input1/10000%10;
	w[1]=input2/10000%10;
	sw[0]=input1/100000%10;
	sw[1]=input2/100000%10;
	
	long long kkk=0;
	int i=1;
		for(int j=0;j<=1;j++){
			for(int k=0;k<=1;k++){
				for(int l=0;l<=1;l++){
					for(int m=0;m<=1;m++){
						for(int n=0;n<=1;n++){
							long long t1=(sw[i]*100000)+(w[j]*10000)+(q[k]*1000)+(b[l]*100)+(s[m]*10)+g[n];
							
							long long t2=(sw[!i]*100000)+(w[!j]*10000)+(q[!k]*1000)+(b[!l]*100)+(s[!m]*10)+g[!n];
							long long m=t1*t2;
							if(m>kkk)kkk=m;
						}
					}	
				}
			}
		}

	cout<<kkk;
	return 0;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值