LightOJ1214Large Division (大数求余)

来源:互联网 发布:lacie setup 软件下载 编辑:程序博客网 时间:2024/05/16 08:34

题意:

问b是否能整除a

思路:

大数求余,利用同余。

#include<stdio.h>#include<string.h>typedef long long ll;char str[205];int main(){    int T, b;    scanf("%d", &T);    for(int kase = 1; kase <= T; kase++)    {        ll rem = 0;        scanf("%s%d", str, &b);        if(b < 0) b = -b;        for(int i = 0; i < strlen(str); i++)        {            if(str[i] == '-')                continue;            rem = (rem*10+(str[i]-'0')) % b;        }        printf("Case %d: ", kase);        if(rem) puts("not divisible");        else puts("divisible");    }    return 0;}

让我想起了——天梯决赛L1-046. 整除光棍,实际上也是利用了这个道理,但是当时的通过率并不高,只想到了用java。

#include<iostream>#include<cstdio>using namespace std;int main(){    int n;    while(cin >> n)    {        int cnt = 1, tmp = 1;        for(; ; cnt++)        {            if(tmp % n == 0)                break;            tmp = (tmp*10+1) % n;        }        tmp = 1;        bool flag = true;        for(int i = 1; i <= cnt; i++)        {            if(tmp/n == 0 && flag);            else            {                flag = false;                printf("%d", tmp / n);            }            tmp = tmp % n;            tmp = tmp * 10 + 1;        }        cout << " " << cnt << endl;    }    return 0;}



0 0
原创粉丝点击