来自 电脑系统 2019-09-27 01:15 的文章
当前位置: 金沙澳门官网网址 > 电脑系统 > 正文

子数整数

题目描述

对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:

sub1=a1a2a3

sub2=a2a3a4

sub3=a3a4a5

例如,五位数20207可以拆分成

sub1=202

sub2=020

sub3=207

现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。

输入输出格式

输入格式:

输入由键盘输入,输入仅一行,为正整数K

输出格式:

输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。

输入输出样例

输入样例#1:

15

输出样例#1:

22555255552855530000

说明

0<K<1000

日常刷水题,

对于每一个数,把这个数拆开就好!

 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 using namespace std; 7 const int MAXN=200001; 8 const int INF = 1e8; 9 inline void read(int &n)10 {11     char c='+';int x=0;bool flag=0;12     while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;}13     while(c>='0'&&c<='9'){x=x*10+c-48;c=getchar();}14     n=flag==1?-x:x;15 }16 int a[6];17 int main()18 {19     int n;read;bool flag=0;20     for(int i=10000;i<=30000;i++)21     {22         int p=i,tot=0;23         while    a[++tot]=p%10,p/=10;24         if((((a[1]+a[2]*10+a[3]*100)%n)==0)&&(((a[2]+a[3]*10+a[4]*100)%n)==0)&&(((a[3]+a[4]*10+a[5]*100)%n)==0))25             printf("%dn",i),flag=1;26     }27     if(flag==0)cout<<"No";28     return  0;29 }

本文由金沙澳门官网网址发布于电脑系统,转载请注明出处:子数整数

关键词: