zoukankan      html  css  js  c++  java
  • lightoj 1245

    lightoj 1245 Harmonic Number (II)

    题意:给定一个 n ,求 n/1 + n/2 + …… + n/n 的值(这里的 "/" 是计算机的整数除法,向下取整)。

    思路:唉,想了很久,最终还是没什么好方法。我的思路是这样的:

        记录结果为 n/1,n/2,……,n/n 的有多少个,然后乘以各自的值就得到结果了。唉暴搞的人桑不起,2.2s过了,膜拜 oj 里边 100+ms过的大神。

    代码

     1 #include <iostream>
     2 #include <stdio.h>
     3 using namespace std;
     4 
     5 typedef long long LL;
     6 
     7 int main()
     8 {
     9     LL a, b, n, m, i, ans;
    10     int CASE, j = 1;
    11     scanf("%d", &CASE);
    12     while(CASE--)
    13     {
    14         ans = 0;
    15         scanf("%lld", &n);
    16         for(i = 1; i <= n; i = b + 1)
    17         {
    18             a = n/i , b = n/a;        //计算 a 相等时 b到达的位置,所以总数就有 (b - i + 1) 个
    19             ans += a * (b-i+1) ;    //计算相等 a 的个数和
    20         }
    21         printf("Case %d: %lld
    ", j++, ans);
    22     }
    23     return 0;
    24 }
  • 相关阅读:
    jQuery教程
    AJAX请求 $.ajax方法的使用
    smarty block_function
    smarty
    位运算版本的交换两数
    提取字符串中的数字
    vue地址插件多级联动自适应 + github地址
    vue插件
    网页title旁边的小图片
    二十三种设计模式[14]
  • 原文地址:https://www.cnblogs.com/Duahanlang/p/3207056.html
Copyright © 2011-2022 走看看