微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

HDU 5832 / HDU 1212 A water problem 大数取模

题解:如果这个数能%73=0和%137=0,就输出YES。否则NO

 

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>

#define LL long long
int const MAX = 10000010;
int const INF = 1 << 30;
double const EPS = 0.00000001;
using namespace std;

char a[MAX];
int ans1,ans2,cnt = 0,len,mod1 = 73,mod2 = 137;
int main(){
    while (scanf("%s",a) == 1){
        cnt++;
        len = strlen(a);
        ans1 = ans2 = 0;
        for (int i = 0; i < len; i++){
            ans1 = (ans1 * 10 + a[i] - '0') % mod1;
            ans2 = (ans2 * 10 + a[i] - '0') % mod2;
        }

        //如果两个余数都是0输出YES
        printf("Case #%d: %s\n",cnt,(!ans1 && !ans2) ? "YES" : "NO");
    }
    return 0;
}

 

这样写会稍微慢一点

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>

#define LL long long
int const MAX = 10000010;
int const INF = 1 << 30;
double const EPS = 0.00000001;
using namespace std;

char a[MAX];
int ans1,mod2 = 137,t;
int main(){
    while (scanf("%s",a) == 1){
        cnt++;
        len = strlen(a);
        ans1 = ans2 = 0;
        for (int i = 0; i < len; i++){
            ans1 = (ans1 * 10 + a[i] - '0');
            ans2 = (ans2 * 10 + a[i] - '0');
            if (ans1 >= mod1)
                ans1 = ans1 % mod1;
            if (ans2 >= mod2)
                ans2 = ans2 % mod2;
        }

        //如果两个余数都是0输出YES
        printf("Case #%d: %s\n",(!ans1 && !ans2) ? "YES" : "NO");
    }
    return 0;
}

 

HDU 1212 Big Number(C++ 大数取模)(java 大数类运用)

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>

#define LL long long
int const MAX = 1010;
int const INF = 1 << 30;
double const EPS = 0.00000001;
using namespace std;

char a[MAX];
int b,ans,len;

int main(){
    while (scanf("%s %d",a,&b) == 2){
        ans = 0;
        len = strlen(a);
        for (int i = 0; i < len; i++)
            ans = (ans * 10 + a[i] - '0') % b;
        printf("%d\n",ans);
    }
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐