码迷,mamicode.com
首页 > 其他好文 > 详细

[信息OJ 2467] Asakura的难题

时间:2015-05-09 23:20:04      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

技术分享 2467: G Asakura的难题

Time Limit:2000MS Memory Limit:65536KB
Asakura是班里有名的捣蛋鬼,所以经常有同学到老师那里去告状。今天老师想出个题恶心一下Asakura,题目如下:
F(n)=∑| n/i | , (i=1,2,3…..n)
|x|为x向下取整,比如|3.5|=3。

Asakura想了想,很快就求出了F(n)。
多组输入
对于每组测试数据:
第一行输入一个整数n(1<=n<=10^10) 
每组输出只包含一个整数,代表F(n)的值。
Sample Input
1
2
3

  Sample Output

1
3
5

额、- -
注意用long long
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
#define ll long long

ll solve(ll n)
{
    ll ans=0;
    ll i,x,y,t;
    for(i=1;i<=n;i++){
        x=n/i;
        y=n%i;
        t=y/x;
        ans+=(t+1)*x;
        i+=t;
    }
    return ans;
}
int main()
{
    ll n;
    while(scanf("%lld",&n)!=EOF){
        printf("%lld\n",solve(n));
    }
    return 0;
}

 

[信息OJ 2467] Asakura的难题

标签:

原文地址:http://www.cnblogs.com/hate13/p/4491336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!