USACO Your Ride Is Here

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZZU_Ringo/article/details/50925012
/*
ID: 49743541
LANG: C
TASK: ride
*/
#include <stdio.h>
int main()
{
    freopen("ride.in","r",stdin);//记住输入输出形式
    freopen("ride.out","w",stdout);
    char a[7];
    char * p;
    int p1 = 1;
    int p2 = 1;
    for(p = a,scanf("%s",p);*p!='\0';p1 *= *p++ - 64)
        ;//for循环的使用
    for(p=a,scanf("%s",p);*p!='\0';p2 *= *p++ - 64)
        ;
    if(p1%47==p2%47)
        printf("GO\n");
    else
        printf("STAY\n");
    return 0;
}

//方法二
/*
ID: 49743541
LANG: C
TASK: ride
*/
#include <stdio.h>
int panduan(char * p)
{
    int m = 1;
    for( ;*p != '\0';m *= (*p++ - 64),m%=47)
        ;
    return m;
}
int main()
{
    freopen("ride.in","r",stdin);
    freopen("ride.out","w",stdout);
    char a[7],b[7];
    scanf("%s",a);
    scanf("%s",b);

    if(panduan(a)==panduan(b))
        printf("GO\n");
    else
        printf("STAY\n");   
    return 0;
}

注意事项:
方法二的取mod问题:
开始是这样的。。。
for( ;p != ‘\0’;m = (*p++ - 64)%47)
忽略了乘等,死用概念,概念还没理解。。

后来又改成了这样。。
for( ;p != ‘\0’;m = (*p++ - 64),m%47)

最后才改成正确版本。

阅读更多
换一批

没有更多推荐了,返回首页