0
已解决
曲天歌
高级光能
高级光能
#include<iostream>
#include<cstring>
using namespace std;
int a[]={0,2,3,4,5,6,7,8,9};
int b[100];
bool Judge(){
for(int i=1;i<=8;i++)
if(b[a[i]]!=1)
return false;
return true;
}
int main(){
for(int i=1;i<=8;i++){
for(int j=1;j<=8;j++){
int t=a[i]/a[j];
if(a[i]%t!=1)
continue;
memset(b,0,sizeof(b));
b[a[i]]++,b[a[j]]++;
b[t]++;
if(Judge())
cout<<a[i]<<" "<<a[j]<<" "<<t<<endl;
}
}
return 0;
}
为什么不输出?
曲天歌在2021-05-18 19:53:59追加了内容
不输出
曲天歌在2021-05-18 19:54:06追加了内容
不输出
曲天歌在2021-05-18 19:54:12追加了内容
不输出
0
0
0
0
0
张恩泽
高级天翼
高级天翼
这题可以枚举
可是我这么正经的人怎么可能枚举?
好吧,枚举就超时了,但我花了30酷町币发现答案是对的,所以:
2584 7 369
4852 7 693
5923 7 846
7435 9 826
嘿嘿,聪明的你应该知道上面的是什么
0
0
李显晨
中级启示者
中级启示者
枚举核心:
for(int i=2345;i<=9876;i++){
for(int j=2;j<=9;j++){
int k=i/j;
a[i/1000]++;
a[i/100%10]++;
a[i/10%10]++;
a[i%10]++;
a[j]++;
a[k/100%10]++;
a[k/10%10]++;
a[k%10]++;
bool flag=1;
if(k>=1000||i%j!=1) flag=0;
for(int l=2;l<=9;l++){
if(a[l]!=1) flag=0;
}
if(flag) cout<<i<<" "<<j<<" "<<k<<endl;
memset(a,0,sizeof(a));
}
}
望采纳