将192分别与1、2、3相乘:
192 × 1 = 192
192 × 2 = 384
192 × 3 = 576
连接这些乘积,我们得到一个1至9全数字的数192384576。我们称192384576为192和(1,2,3)的连接乘积。
同样地,将9分别与1、2、3、4、5相乘,得到1至9全数字的数918273645,即是9和(1,2,3,4,5)的连接乘积。
对于n > 1,所有某个整数和(1,2, … ,n)的连接乘积所构成的数中,最大的1至9全数字的数是多少?
1 9 9 5 192 3 219 3 267 3 273 3 327 3 5238 2 5239 2 5364 2 5382 2 5392 2 5436 2 5486 2 6354 2
6435 2 6485 2 6729 2 6792 2 6852 2 6927 2 7269 2 7293 2 7329 2 7692 2 7923 2 7932 2 8235 2 8352 2 8523 2
8532 2 8546 2 8645 2 8652 2 9235 2 9267 2 9273 2 9327 2 9352 2
int fun8_1(char * s)
{
int a[9];
int i ,j;
for (i = 0; i < 10; i++)
{
a[i] = s[i] - 48;
}
for (i = 0; i < 8; i++){
for (j = i + 1; j < 9; j++){
if (a[i] == a[j]){
return 0;
}
}
}
return 1;
}
void fun8(void)
{
int i, j, sum = 0;
char s[19], c[9];
for (i = 1; i < 9999; i++)
{ memset(s, 0, sizeof(s));
for (j = 1; j < 10; j++)
{
sprintf(c, "%d", i * j);
strcat(s, c);
if (strlen(s) == 9) {
//printf("%d %d\n", i, j); puts(s);
if (fun8_1(s)) {
printf("%d %d\t", i, j);
}
}else if (strlen(s) > 9){
break;
}
}
}
}
int main (void)
{
fun8();
return 0;
}