2016年东莞初中信息特长生试题题解

本文详细解答了2016年东莞初中信息特长生试题,涉及四个问题:1. 五位数的子数整数问题,寻找满足特定条件的数;2. 围坐游戏问题,根据规则计算同学最终位置;3. 字串距离计算,找到两个字符串扩展串间的最小距离;4. 村庄重建问题,求解地震后村庄间最短路径。文章提供了数据输入输出样例及解题思路。
摘要由CSDN通过智能技术生成

问题 A: 子数整数

Description
对于一个五位数 a1a2a3a4a5,可将其拆分为三个子数: sub1=a1a2a3
sub2=a2a3a4
sub3=a3a4a5
例如,五位数 20207 可以拆分成 sub1=202
sub2=020(=20) sub3=207
现在给定一个正整数 K,要求你编程求出 10000(包括 10000)到 30000(包括 30000)之间所有满足下述条件的五位数,条件是这些五位数的三个子数 sub1,sub2,sub3 都可被 K 整除。
Input
从文件 num.in 输入,输入仅一行,为正整数 K(0
Output
输出到文件 num.out,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出“-1”。
Sample Input
15 
Sample Output
22555
25555
28555
30000

代码如下

#include <bits/stdc++.h>//12345 123 234 345
using namespace std;//          c   e   f
long long  n, ans;

int main() {
	cin >> n;
	for (int i = 10000; i <= 30000; i++) {
		int a = i / 10000; //1
		int b = i / 1000; //12
		int c = i / 100; //123
		int d = i / 10; //1234
		int e = d - a * 1000; //234
		int f = i - b * 1000 ;//345
		if (c % n == 0 && e % n == 0 && f % n == 0) {
			cout << i << endl;
			ans++;
		}

	}
	if (ans == 0)
		cout << "-1";
	return 0;
}

问题 B:游戏问题

【问题描述】
“五四”青年节到了,某学校要举行一个游园活动,其中有一个这样的游戏:n 个同学(编号从0 到n-1)围坐一圈,按照顺时针方向给n 个位置编号,从0 到n-1。最初,第0 号同学在第0 号位置,第1 号同学在第1 号位置,……,依此类推。
游戏规则如下:每一轮第0 号位置上的同学顺时针走到第m 号位置,第1 号位置同学走到第m+1 号位置,……,依此类推,第n −m号位置上的同学走到第0 号位置,第n-m+1 号位置上的同学走到第1 号位置,……,第n-1 号位置上的同学顺时针走到第m-1 号位置。
现在,一共进行了10^k 轮,请问x 号同学最

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值