1049.饭盒

1049.盒饭

Time Limit: 1000 MS    Memory Limit: 32768 KB
Total Submission(s): 258    Accepted Submission(s): 154

Description

有n个饭盒放成一排,其中第m个饭盒里多了一块牛肉。鲁观特别想吃带牛肉的那盒饭,但食堂阿姨说他只能先打开第一个饭盒,然后再向前移动两个饭盒,再向前移动三个饭盒,依此类推。当到达最后一个饭盒的时候,再回到第一个饭盒继续寻找,一共只允许找2 * m次。请你帮鲁观判断下是否能找到带牛肉的饭盒。

Input

第一行饭盒数n,第二行有牛肉的饭盒m
(0 < n < 1000, 0 <= m < n)

Output

如果能吃到,输出"Y",如果不能吃到,输出"N"

Sample Input

5
3

Sample Output

Y

Hint

初始状态为第0个饭盒。
对于样例,一开始位置在第0个饭盒,第一次访问第1个饭盒,第二次访问第3个饭盒,可以找到。

Source

嘤嘤嘤 这个题好坑啊 也不是坑 我语文不好我可看不懂
当到达最后一个饭盒的时候,再回到第一个饭盒继续寻找 感觉这句话有歧义hhhhhh
上代码。
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<string.h>
 5 using namespace std;
 6 int pos,m,cnt,i,n;
 7 bool flag;
 8 int main()
 9 {
10     while(scanf("%d",&n)!=EOF)
11     {
12         scanf("%d",&m);
13         cnt=0;
14         flag=0;
15         i=0;
16         while(cnt<2*m)//2m次循环
17         {
18             pos=0;
19             cnt++;
20             while(pos<=n-1)//因为饭盒编号是0到n-1
21             {
22                 pos+=i;
23                 ++i;
24                 if(pos==m)
25                 {
26                     flag=1;
27                 }
28             }
29         }
30         if(flag)
31         {
32             cout<<'Y'<<'\n';
33         }
34         else
35         {
36             cout<<'N'<<'\n';
37         }
38     }
39     return 0;
40 }

猜你喜欢

转载自www.cnblogs.com/guanwen769aaaa/p/10284580.html