第三部分:POJ 1006 解题报告

POJ 1006 Biorhythms
【问题描述】
“中国剩余定理”
此题的题意可以理解为:x % 23 == p; x % 28 == e; x % 33 == i;求x
所以接下来
使 33 * 28 * a % 23 = 1,得a = 6; 33 * 28 * 6 = 5544; 
使23 * 33 * b % 28 = 1, 得b = 19;23 * 33 * 19 = 14421; 
使23 * 28 * c % 33 = 1, 得c = 2;  23 * 28 * 2 = 1288。 
那么x  =  5544 * p + 14421 * e + 1288 * i;
这段是核心,没有这段题目是不容易做的。
C语言代码
#include <stdio.h>
#define D 21252
void main()
{
    int p,e,i,d,n,c=0;
    while(scanf("%d %d %d %d",&p,&e,&i,&d)!=EOF)
    {
        c++;
        if(p==-1&&e==-1&&i==-1&&d==-1)
            break;
        n=(5544*p+14421*e+1288*i-d)%D;
        if(n<=0)      /*限定值取范围内*/ 
            n+=21252;
        printf("Case %d: the next triple peak occurs in %d days.\n", c, n );
    }
}


  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值