您的位置:首页 > 其它

数字游戏(解题报告)

2014-04-04 20:04 281 查看
Time Limit:1 Sec Memory Limit:128 MB

Description

有一行数字1,2,……N,复制本行数字到第二行,并从左向右删除M个数,第三行复制第二行的数字,并从左向右删除M个数,如此反复,直到最后一行没有数字为止,如下N=5,M=2.

1
2
3
4
5
3
4
5
5
由上图得序列[1,2,3,4,5,3,4,5,5],求出序列的第k个数。

Input

一个正整数N,M,k (0<N,M<2147483647,M <= N,k不超过序列的范围)

Output

序列中的第k个数字。

Sample Input

5 2 15 2 7

Sample Output

14

/*

题目名称:数字游戏
题目链接:http://acm.cug.edu.cn/JudgeOnline/problem.php?cid=1017&pid=8

题目分析:本题解法有很多,在这里提供一种模拟过程爆破的方法。(在仔细观察数据变化后分析出的过程模拟方法)

*/
#include <iostream>

using namespace std;

int result(int n, int m, long long k/*注意k的取值范围*/)
{
int line = 0;
while (k > n)
{
k -= n;
n -= m;
++line;
}

return k + m * line;
}

int main()
{
int n, m;
long long k;
while (cin >> n >> m >> k)
{
cout << result(n, m, k) << endl;
}
return 0;
}


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: