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

hdu 4762 - Cut the Cake(大数)

发布时间:2020-12-14 03:58:56 所属栏目:大数据 来源:网络整理
导读:思路十分简单,就是计算一下 n / ((m)^(n-1)); 代码如下: int cnt,ans[100];int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}void cal(int x){ for(int i = 0; i cnt; ++i) ans[i] *= x; int t = 0; for(int i = 0; i cnt; ++i) { ans[i] += t; t = ans[i

思路十分简单,就是计算一下 n / ((m)^(n-1));

代码如下:

int cnt,ans[100];

int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}
void cal(int x)
{
    for(int i = 0; i < cnt; ++i)
        ans[i] *= x;
    int t = 0;
    for(int i = 0; i < cnt; ++i)
    {
        ans[i] += t;
        t = ans[i]/10000;
        ans[i] %=10000;
    }
    while(t)
    {
        ans[cnt++] = t%10000;
        t /= 10000;
    }
}

int main()
{
    int t,n,m,z;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&m,&n);
        memset(ans,sizeof(ans));
        z = n;
        cnt = 1;
        ans[0] = 1;
        for(int i = 0; i < n-1; ++i)
        {
            int g = gcd(m,z);
            z /= g;
            cal(m/g);
        }
        printf("%d/",z);
        for(int i = cnt-1; i >= 0; --i)
            i==cnt-1?printf("%d",ans[i]):printf("%.4d",ans[i]);
        printf("n");
    }
    return 0;
}

(编辑:李大同)

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

    推荐文章
      热点阅读