利用数字0,1,2,3,4,……8,9,(每个数字可以重复)构造一个6位数.满足要求:前k位能被k整除(k=1,2,……6).这样这样的六位数最小是?最大是?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/18 05:59:13
利用数字0,1,2,3,4,……8,9,(每个数字可以重复)构造一个6位数.满足要求:前k位能被k整除(k=1,2,……6).这样这样的六位数最小是?最大是?
利用数字0,1,2,3,4,……8,9,(每个数字可以重复)构造一个6位数.
满足要求:前k位能被k整除(k=1,2,……6).这样这样的六位数最小是?最大是?
利用数字0,1,2,3,4,……8,9,(每个数字可以重复)构造一个6位数.满足要求:前k位能被k整除(k=1,2,……6).这样这样的六位数最小是?最大是?
设这个六位数最小是abcdef.
它需要满足要求:前k位要被k整除,根据这个条件,我们来讨论最大和最小.
最小:
1.a=1 【□被1整除,□可以是除0以外的任意一位数,□最小是1】
2.b=0 【1□被2整除,□必须是一位数偶数,□最小是0】
3.c=2 【10□被3整除,□被3除2,□最小是2】
4.d=0 【102□被4整除,□被4整除,□最小是0】
5.e=0 【1020□被5整除,□被5整除,□最小是0】
6.f=0 【10200□被6整除,□被6整除,□最小是0】
所以这个最小的六位数是102000.
同理讨论,也可得出最大的六位数是987654.
void fun()
{
long min=1,max=9,t;
int i,j;
for(i=2;i<=6;++i)
{
for(t=min,j=0;j<10;++j)
{
t=t*10+j;
if(t%i==0)
break;
else
t=min;...
全部展开
void fun()
{
long min=1,max=9,t;
int i,j;
for(i=2;i<=6;++i)
{
for(t=min,j=0;j<10;++j)
{
t=t*10+j;
if(t%i==0)
break;
else
t=min;
}
min=t;
for(t=max,j=9;j>=0;--j)
{
t=t*10+j;
if(t%i==0)
break;
else
t=max;
}
max=t;
}
printf("min=%ld,max=%ld\n",min,max);
}
收起