加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 05:02:40 所属栏目:大数据 来源:网络整理
导读:题解:如果这个数能%73=0和%137=0,就输出YES。否则NO ? #include iostream#include cstdio#include cmath#include cstring#include algorithm#define LL long longint const MAX = 10000010;int const INF = 1 30;double const EPS = 0.00000001;using name

题解:如果这个数能%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: %sn",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: %sn",(!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("%dn",ans);
    }
    return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读