问题标题: 酷町堂:3512 数字拆分

0
0
已解决
丁博扬
丁博扬
中级天翼
中级天翼

3512   数字拆分    经验值:100

题目描述 Description

对于一个五位数a1​a2​a3​a4​a5​ ,可将其拆分为三个子数:

sub1=a1​a2​a3​

sub2=a2​a3​a4​

sub3=a3​a4​a5​

例如,五位数 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;
}

请大佬多多指教


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;
        }
    }    

不用这么麻烦,用上面的,在加上判断有没有符合这个的数

0
0
0
黄依成
黄依成
中级天翼
中级天翼

这啥玩意儿显示,超格就不显示了

放代码框里吧

黄依成在2021-04-26 19:37:15追加了内容

0
我要回答