当前位置:编程学习 > C/C++ >>

HDU 1576 A/B 数论水题

题意:中文题。。。
思路:设A = k * 9973 + n  ,A/ B = C, C = P * 9973 + x,x即为我们所求的答案。易知,A = k* 9973 + n =B * P * 9973 + B * x,化简后得k * 9973 = B * P * 9973 + B * x - n,因此(B * x - n)%9973 = 0,n的值知道,B的值知道,又因为x的取值范围是0到9972,因此枚举x的值即可,满足条件的就是答案。
代码:www.zzzyk.com
[cpp] 
#include <iostream> 
#include <cstdio> 
#include <string.h> 
using namespace std; 
 
int main(){ 
    int numcase; 
    scanf("%d",&numcase); 
    while(numcase--){ 
      __int64 n,b; 
      int x; 
      scanf("%I64d%I64d",&n,&b); 
      for(int i = 0;i < 9973; ++i){ 
          if(( b * i - n ) % 9973 == 0){ 
            x = i; 
            break; 
          } 
      } 
      printf("%d\n",x); 
    } 
    return 0; 


作者:wmn_wmn
补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,