利用数字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).这样这样的六位数最小是?最大是?

void fun()
{
long min=1,max=9,t;
int i,j;
for(i=2;i {
for(t=min,j=0;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);
}

设这个六位数最小是abcdef.它需要满足要求:前k位要被k整除,根据这个条件,我们来讨论最大和最小.最小:1.a=1 【□被1整除,□可以是除0以外的任意一位数,□最小是1】2.b=0 【1□被2整除,□必须是一位数偶数,□最小是0...