3个回答
展开全部
要使乘积最大 很明显 在两位数中 十位数大于个位数,在三位数中应该是百位数大于十位数, 十位数大于个位数
所以两个个位数定义有个1,我们先确定1在两位数中还是在三位数中
考虑三位数ab1×两位数cd 的结果 和三位数abd×两位数c1的结果
由(100*a+10*b+1)*(10*c+d)-(100*a+10*b+d)*(10*c+1)=(100a+10b-10*c)(d-1)>0
知前者乘积更大,
这样我们仅需要计算6种情形即可(4个数选2个决定两位数即可)
54*321=17334; 53*421=22313;52*431=22412
43*521=22403;42*531=22302;32*541= 17312
最大的是52*431=22412
找乘积最小的类似,决定5已定是三位数的个位而不是两位数的各位再考虑剩下的六种情形
12*345=4140;13*245=3185;14*235=3290;
23*145=3335;24*135=3240;34*125=4250;
最小的是13*245=3185
所以两个个位数定义有个1,我们先确定1在两位数中还是在三位数中
考虑三位数ab1×两位数cd 的结果 和三位数abd×两位数c1的结果
由(100*a+10*b+1)*(10*c+d)-(100*a+10*b+d)*(10*c+1)=(100a+10b-10*c)(d-1)>0
知前者乘积更大,
这样我们仅需要计算6种情形即可(4个数选2个决定两位数即可)
54*321=17334; 53*421=22313;52*431=22412
43*521=22403;42*531=22302;32*541= 17312
最大的是52*431=22412
找乘积最小的类似,决定5已定是三位数的个位而不是两位数的各位再考虑剩下的六种情形
12*345=4140;13*245=3185;14*235=3290;
23*145=3335;24*135=3240;34*125=4250;
最小的是13*245=3185
展开全部
最大:52*431=22412
最小:13*245=3185
#include <stdio.h>
void main()
{
int a,b,c,d,e,s,xa,xb,na,nb;
int min=10000,max=0;
for(a=1;a<6;a++)
{
for(b=1;b<6;b++)
{
if(b!=a)
{
for(c=1;c<6;c++)
{
if(c!=a && c!=b)
{
for(d=1;d<6;d++)
{
if(d!=a && d!=b && d!=c)
{
for(e=1;e<6;e++)
{
if(e!=a && e!=b && e!=c && e!=d)
{
s=(10*a+b)*(100*c+10*d+e);
if(s<min)
{
min=s;
na=10*a+b;
nb=100*c+10*d+e;
}
if(s>max)
{
max=s;
xa=10*a+b;
xb=100*c+10*d+e;
}
}
}
}
}
}
}
}
}
}
printf("Max:%d*%d=%d\nmin:%d*%d=%d\n",xa,xb,max,na,nb,min);
}
最小:13*245=3185
#include <stdio.h>
void main()
{
int a,b,c,d,e,s,xa,xb,na,nb;
int min=10000,max=0;
for(a=1;a<6;a++)
{
for(b=1;b<6;b++)
{
if(b!=a)
{
for(c=1;c<6;c++)
{
if(c!=a && c!=b)
{
for(d=1;d<6;d++)
{
if(d!=a && d!=b && d!=c)
{
for(e=1;e<6;e++)
{
if(e!=a && e!=b && e!=c && e!=d)
{
s=(10*a+b)*(100*c+10*d+e);
if(s<min)
{
min=s;
na=10*a+b;
nb=100*c+10*d+e;
}
if(s>max)
{
max=s;
xa=10*a+b;
xb=100*c+10*d+e;
}
}
}
}
}
}
}
}
}
}
printf("Max:%d*%d=%d\nmin:%d*%d=%d\n",xa,xb,max,na,nb,min);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询