zoukankan      html  css  js  c++  java
  • poj--2115 C Looooops

    http://poj.org/problem?id=2115

    只是简单地exgcd求解,要注意的是k位存储系统意思是当 i 大于2^k时从头开始计算

     1 #include <iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 long long A,B,C,k,x1,y1,a,b,e,d;
     5 long long exgcd(long long a,long long b)
     6 {
     7     long long tmp;
     8     if(b==0)
     9     {
    10         x1=1;y1=0;
    11         return a;
    12     }
    13     d=exgcd(b,a%b);
    14     tmp=x1;
    15     x1=y1;
    16     y1=tmp-a/b*x1;
    17     return d;
    18 }
    19 int main()
    20 {
    21     long long c[34];
    22     c[0]=1;
    23     for(int i=1;i<34;i++)
    24     c[i]=c[i-1]*2;
    25     while(~scanf("%lld%lld%lld%lld",&A,&B,&C,&k))
    26     {
    27         if(A==0&&B==0&&C==0&&k==0)
    28         break;
    29         a=C;
    30         b=c[k];
    31         e=B-A;
    32         d=exgcd(a,b);
    33         if(e%d!=0)
    34         {
    35             printf("FOREVER
    ");
    36             continue;
    37         }
    38         x1=e/d*x1;
    39         b=b/d;
    40         if(b<0)
    41         b=-b;
    42         x1=x1%b;
    43         if(x1<0)
    44         x1=x1+b;
    45         printf("%lld
    ",x1);
    46     }
    47     return 0;
    48 }
    View Code
  • 相关阅读:
    Spring Cloud
    Hibernate 缓存
    Spring 快速入门
    Junit 单元测试
    Spring Cloud 笔记
    Swagger SpringBoot 集成
    Apache Shiro 权限框架
    Spring Boot
    跨域问题
    BeX5 常见问题解决办法
  • 原文地址:https://www.cnblogs.com/wang-ya-wei/p/5732278.html
Copyright © 2011-2022 走看看