第1题 子数整数(num.pas/in/out)
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。
输入
输入由键盘输入,输入仅一行,为正整数K(0<K<1000)。
输出
输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
样例
num.in
15
num.out
22555
25555
28555
30000
直接模拟:
#include <cstdio>
#include <iostream>
using namespace std;
//20207
int main()
{
freopen("num.in","r",stdin);
freopen("num.out","w",stdout);
int k;
scanf("%d",&k);
if(k==0)
{
printf("No");
return 0;
}
int flag=0;
for(int i=10000;i<=30000;i++)
{
int sub1=i/100;
int sub2=(i%10000)/10;
//sub2%=1000;
int sub3=i%1000;
//printf("%d %d %d\n",sub1,sub2,sub3);
if(sub1%k==0&&sub2%k==0&&sub3%k==0)
{
flag=1;
printf("%d\n",i);
}
//while(1);
}
if(!flag)
{
printf("No");
}
}