题目描述
对于一个五位数a1a2a3a4a5,可将其拆分为三个子数:
sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数20207可以拆分成
sub1=202
sub2=020(=20)
sub3=207
现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。
输入格式
一个正整数K
输出格式
每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“No”。
输入输出样例
输入 #1
15
输出 #1
22555
25555
28555
30000
说明/提示
0<K<1000
思路:
- 分别求出sub1,sub2,sub3
- 判断sub1,sub2,sub3模k的值是否同时为0
- 用temp记录变化情况,便于输出所需内容
代码实现:
package qwx.luogu;
import java.util.Scanner;
public class p1151 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int k=scanner.nextInt();
int ltemp=0;
for (int i=10000;i<=30000;i++)
{
int sub1=i/100;
int temp=i/10;
int sub2=temp%1000;
int sub3=i%1000;
if (sub1%k==0&&sub2%k==0&&sub3%k==0)
{
ltemp=1;
System.out.println(i);
}
}
if(ltemp==0)
System.out.println("No");
}
}
该博客介绍了如何编程寻找10000到30000之间的五位数,这些数的三个子数(每两位组成)都能被给定正整数K整除。首先解释了问题背景,然后详细说明了输入输出格式,并给出了样例。博主分享了解题思路,即分别计算子数并检查它们对K的余数,最后提供了代码实现来解决这个问题。
4877





