zoukankan      html  css  js  c++  java
  • 湖南工业大学创新实验室2015年新生赛(一)1003(重开)

    A simple problem II

    Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
    Total Submission(s) : 34   Accepted Submission(s) : 20

    Font: Times New Roman | Verdana | Georgia

    Font Size: ← →

    Problem Description

    嘿嘿,恭喜你,看到了本场比赛最简单的题目!
    (友情提示,这题你可千万别
    for(i = 0;i <= n;i++) if(i%k==0) ans++;
    这样做哦,不然绝对会超时的,ikids除了长的帅,有很多女朋友,还从来不骗人呢!)

    废(好)话不多说了,且听题意:

    给你一个n,和k,你的任务是输出在0~n里一共有多少个数能够被k整除(如果k在0~n范围内,自然也包括它本身),是不是很简单呢!那就快快AC啊。。说不定现在就有人AC了呢!!

    Input

    输入有多组数据,每一组输入两个整数n和k

    其中 1<=n,k<=10^9

    Output

    输出一个数字ans,代表0~n内有多少个数整除k。

    Sample Input

    1 1
    2 1

    Sample Output

    2
    3

    Author

    ikids
     
    不妨我们考虑多点,[a,b]可以整除的个数  
    a<0 b<0     (-a)/k-(-b)/k 考虑b是否整除
    a<0 b=0     (-a)/k;  加0本身
    a<0 b>0     (b)/k+(-a)/k 加0本身
    a=0 b>0     (b)/k  加0本身
    a>0 b>0     (b)/k-(a)/k  考虑a是否整除
    a=0 b=0      0本身
    #include<stdio.h>
    //#include<bits/stdc++.h>
    #include<string.h>
    #include<iostream>
    #include<math.h>
    #include<sstream>
    #include<set>
    #include<queue>
    #include<vector>
    #include<algorithm>
    #include<limits.h>
    #define inf 0x3fffffff
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    #define LL long long
    using namespace std;
    int main()
    {
        LL k,a,b;
        LL ans=0;
        while(cin>>b>>k)
        {
            LL ans=0;
            a=0;
            if(a<0&&b<0)
            {
                ans+=(-a)/k-(-b)/k;
                if((-b)%k==0)
                {
                    ans++;
                }
            }
            else if(a<0&&b==0)
            {
                ans+=(-a)/k;
                ans++;
            }
            else if(a<0&&b>0)
            {
                ans+=(b)/k+(-a)/k;
                ans++;
            }
            else if(a==0&&b>0)
            {
                ans+=(b)/k;
                ans++;
            }
            else if(a>0&&b>0)
            {
                ans+=(b)/k-(a)/k;
                if(a%k==0)
                {
                    ans++;
                }
            }
            else if(a==0&&b==0)
            {
                ans++;
            }
            cout<<ans<<endl;
        }
        return 0;
    }
    

      

  • 相关阅读:
    实战parse_ini_file()及扩展函数解析ini文件完整版
    Android应用程序注冊广播接收器(registerReceiver)的过程分析
    LeetCode: Best Time to Buy and Sell Stock II [122]
    关于URL编码
    js进阶 14-1 jquery的ajax系列中的load方法的作用是什么
    js进阶 13 jquery动画函数有哪些
    js进阶 13-11/12 jquery如何实现折叠导航
    js进阶 13-9/10 jquery如何实现三级列表
    js进阶 13-8 jquery如何实现侧边栏
    js进阶 13-7 如何实现滑动面板效果
  • 原文地址:https://www.cnblogs.com/yinghualuowu/p/4996053.html
Copyright © 2011-2022 走看看