zoukankan      html  css  js  c++  java
  • 3040 中国余数定理 1[一中数论随堂练]

    3040 中国余数定理 1

     

     时间限制: 1 s
     空间限制: 32000 KB
     题目等级 : 青铜 Bronze
     
     
     
    题目描述 Description

    摘自算法导论。。。。。。

    找出第k个被3,5,7除的时候,余数为2,3,2的数;

    输入描述 Input Description

    一个数k。

    输出描述 Output Description

    求出第k个符合条件的数。

    样例输入 Sample Input

    1

    样例输出 Sample Output

    23

    数据范围及提示 Data Size & Hint

    k>=1;

    答案不超过long long所能存储的范围。

    典型的数论题。

    分类标签 Tags 点此展开 

     
     
    题解:

    讲讲公式的推导。

    首先看除以3 除以7都是余2 那么满足这一条件的第n个数为: 21*n+2 (n>=0)

    再看看满足除以5余三的条件:末位为3或8

    结合这两者,那么只需要21*n的末位为1或6即可满足条件

    又因为21的末尾为1所以n的末尾也为1或6.

    所以第k个n可以表示为:n=5k-4 (k>=0)

    所以 ans=(k*5-4)*21+2

    AC代码:

    #include<iostream>
    using namespace std;
    int main(){
        ios::sync_with_stdio(0);
        long long int k,ans;
        cin>>k;
        ans=(k*5-4)*21+2;
        cout<<ans<<endl;
        return 0;
    }
  • 相关阅读:
    [机器人仿真软件(一)]V-REP与MATLAB进行通讯的方法
    TCP接收非法数据0xFFF4FFFD06的问题
    std::numeric_limits::epsilon
    linux 设置默认网关
    更换pip源
    实时屏幕传输
    安装node
    window 添加服务
    数据集格式
    jupyter 设置密码
  • 原文地址:https://www.cnblogs.com/shenben/p/5658445.html
Copyright © 2011-2022 走看看