注册 登录
编程论坛 VC++/MFC

各位大侠,麻烦给我看看一道c++题目,我的代码为何总是wrong answer

妙源清君 发布于 2011-07-27 12:48, 602 次点击
题目如下:
Description
在一个遥远的地方,有一座不知名的高山,周围有 n 个兔子的窝,分别标记为 0 至 n-1 。小白兔隐藏在其中,大灰狼从 0 号窝开始按着逆时针的方向寻找,每隔 m 个洞查找一次。 例如: n = 6, m = 2, 则大灰狼寻找窝的序号依次为 0,2,4,0,...。如果小白兔藏在1,3,或5号窝中,那么小白兔则会很安全。
Input
输入以一个正整数P开始,表示有P组测试数据,接着有P行,每行有两个正整数 m 和 n (0 < m,n < 2147483648)。
Output
对于输入的每组 m 和 n, 如果有安全的窝存在,输出 "YES" ,否则输出 "NO"。
Sample Input
2
1 2
2 2
Sample Output
NO
YES


我的代码如下:
#include<stdio.h>
int main()
{
    int p,i,m,n;
    scanf("%d",&p);
    for(i=0;i<p;i++)
    {
        scanf("%d%d",&m,&n);
        if(m==1||m>=n-1)
            printf("NO\n");
        else
            if(n%m==0)
                printf("YES\n");
            else
                printf("NO\n");
    }
    return 0;
}
2 回复
#2
吴辉2011-07-27 18:03
#include<stdio.h>
int main()
{
    int p,i,m,n;
    //printf("输入测试数据的组数:");
    scanf("%d",&p);
    for(i=0;i<p;i++)
    {
       //printf("输入查询间隔m和兔子窝数n:");
       scanf("%d %d",&m,&n);         //这里输入键入一个空格或“,”
        if(m==1||m>=n-1)
            printf("NO\n");
        else
            if(n%m==0)
                printf("YES\n");
            else
                printf("NO\n");
    }
    return 0;
}


#3
妙源清君2011-07-30 17:29
谢啦,但我仔细一想,发现算法错了,有些情况没考虑,这题实质是看m,n是否互质
1