【欧拉计划】38. Pandigital multiples

【思路】暴力倒序枚举 $10000$ 以内的整数并检查:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<stdio.h>
#include<stdbool.h>
int main()
{
for(int i=9999;i;--i)
{
for(int j=2;;++j)
{
int a[10]={},b[10]={};
for(int k=1;k<=j;++k)
{
int x=i*k;
b[k]=x;
while(x)
{
++a[x%10];
x/=10;
}
}
bool flag=true;
int cnt=a[0];
for(int k=1;k<10;++k)
{
cnt+=a[k];
if(a[k]!=1)flag=false;
}
if(cnt>9)break;
if(flag)
{
for(int k=1;k<=j;++k)printf("%d",b[k]);
return 0;
}
}
}
return 0;
}

【欧拉计划】38. Pandigital multiples

https://hensier.github.io/projecteuler/38/

作者

hensier

发布于

2022-05-01

更新于

2023-01-02

许可协议

评论