求救
by Ihoek @ 2023-08-05 23:36:53
# 错误点
```
#include<bits/stdc++.h>
using namespace std;
int a[5]; //改为a[6]
int main(){
int k,sum=5,sub1,sub2,sub3,ans=10000;//ans? 没用可以删掉
//bool flag=false flag:是否有符合条件的数,没有输出No
cin>>k;
a[1]=1;
for(int i=10000;i<=30000;i++){
a[sum]++; //改为a[5]++
for(sum=5;sum!=0;sum--){ //改为(sum=5;sum>0;sum--)
if(a[sum]==5){ //改为a[sum]>=10
a[sum]=0;
a[sum-1]++;
}
sub1=a[1]*100+a[2]*10+a[3];
sub2=a[2]*100+a[3]*10+a[4];
sub3=a[3]*100+a[4]*10+a[5];
if(sub1%k==0||sub2%k==0||sub3%k==0){//把 || 都改为 && (审题)
cout<<a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5];
}
}
/*sub1=a[1]*100+a[2]*10+a[3];//上面挪到这里
sub2=a[2]*100+a[3]*10+a[4];
sub3=a[3]*100+a[4]*10+a[5];
if(sub1%k==0||sub2%k==0||sub3%k==0){//把 || 都改为 && (审题)
cout<<a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5];
}*/
}
/*if(!flag){如果没有(false)输出No
cout<<"No";
}*/
return 0;
}
```
# 正确代码(建议先理解再抄)
```
#include<bits/stdc++.h>
using namespace std;
int a[6];
int main(){
int k,sum=5,sub1,sub2,sub3;
bool flag=false;
cin>>k;
a[1]=1;
for(int i=10000;i<=30000;i++){
a[5]++;
for(sum=5;sum>0;sum--){
if(a[sum]>=10){
a[sum]-=10;
a[sum-1]++;
}
}
sub1=a[1]*100+a[2]*10+a[3];
sub2=a[2]*100+a[3]*10+a[4];
sub3=a[3]*100+a[4]*10+a[5];
if(sub1%k==0&&sub2%k==0&&sub3%k==0){
cout<<a[1]*10000+a[2]*1000+a[3]*100+a[4]*10+a[5]<<endl;
}
}
if(!flag){
cout<<"No";
}
return 0;
}
```
by fuziyu1005 @ 2023-08-06 17:46:47
@[fuziyu1005](/user/980879) 感谢带佬(喜)懂力
by Ihoek @ 2023-08-10 13:38:44