3512 数字拆分 经验值:100
题目描述 Description
对于一个五位数a1a2a3a4a5 ,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数 20207 可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数 K ,要求你编程求出10000 到30000 之间所有满足下述条件的五位数,条件是这些五位数的三个子数 sub1,sub2,sub3都可被 K整除。
输入描述 Input Description
一个正整数K
输出描述 Output Description
每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
样例输入 Sample Input
15
样例输出 Sample Output
22555 25555 28555 30000
数据范围及提示 Data Size & Hint
0<K<1000
错误代码:
#include<iostream>
using namespace std;
int a[6];
bool flag=0;
int main(){
int cnt;
cin>>cnt;
for(int i=10000;i<=99999;i++){
a[1]=i/10000;
a[2]=i/1000%10;
a[3]=i/100%100;
a[4]=i/10%1000;
a[5]=i%10000%1000%100%10;
if(a[3]*100+a[4]*10+a[5]%cnt==0&&a[2]*100+a[3]*10+a[4]%cnt==0&&a[1]*100+a[2]*10+a[3]%cnt==0){
cout<<i<<endl;
flag=1;
}
}
if(flag==0){
cout<<"No";
}
return 0;
}
请大佬多多指教
for(int i=10000;i<=30000;i++){
if((i%1000)%k==0&&(i/10%1000)%k==0&&(i/100%1000)%k==0){
cout<<i<<endl;
f=1;
}
}
不用这么麻烦,用上面的,在加上判断有没有符合这个的数