zoukankan      html  css  js  c++  java
  • 网易招聘笔试题--数对

    题目链接: https://www.nowcoder.com/question/next?pid=9763997&qid=152611&tid=14751374

    解题思路: 考虑固定每个y,那么对于y=k+1,,..., n,生成的符合条件的数对共有 n / y * (y - k) + (n % y - k + 1)  |  (n % y > 0)。

                      对所有的y求和即可。特例k =0 时, ans = n * n;

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 long long n, k;
     5 
     6 int main()
     7 {
     8     long long ans = 0;
     9     scanf("%lld%lld", &n, &k);
    10     if (k == 0LL)
    11     {
    12         printf("%lld
    ", n * n);
    13         return 0;
    14     }
    15     for (long long y = k + 1; y <= n; ++y)
    16     {
    17         ans += n / y * (y - k);
    18         if (n % y >= k)
    19             ans += (n % y - k + 1);
    20     }
    21     printf("%lld
    ", ans);
    22     return 0;
    23 }
  • 相关阅读:
    MySQL(错误1064)
    如何判断是手机还是电脑访问网站
    Oracle表分区
    分离Date数据
    多对多
    一对多
    SQLalchemy基础
    paramiko上传下载
    paramiko
    automap
  • 原文地址:https://www.cnblogs.com/djingjing/p/8687807.html
Copyright © 2011-2022 走看看