zoukankan      html  css  js  c++  java
  • 平方和求余

    2193: 校赛的纪念

    Time Limit: 1 Sec  Memory Limit: 512 MB
    Submit: 815  Solved: 154
    [Submit][Status][BBS]

    Description

    作为成都东软学院的第一届个人校赛,这一天是我们ACM团队的所有成员所应该铭记的日子。而作为我们的总教练余大牛又想出了一个简单的问题作为对今日比赛的纪念,其实题目很简单,仅仅是计算平方和。但是,为了体现对今天的纪念,余大牛要求结果对20121215(今天的日期)取余。

    例如:当n等于3时,ans=1^2+2^2+3^2=14

    Input

     一个整数n ( 0 <= n <= 1000000)

    注意:测试数据包含多个

    Output

    输出题目要求的结果

    Sample Input

    2
    3

    Sample Output

    5
    14

    HINT

     有两种方法:
    1:用平方和公式
    这样算然后直接求余,就可以避免一直重复的平方,一直算很大的数,可以节省很多时间,更要注意数字很大,要用longlong
    #include <stdio.h>
    int main()
    {
        long long n,sum;
        while(scanf("%lld",&n)!=EOF)
        {
            sum=n*(n+1)*(2*n+1)/6;
            printf("%lld
    ",sum%20121215);
        }
        return 0;
    }
     
    2:用余数定理
    这样可以避免很大的数对20121215取余产生错误,所以拆开来分别取余,但是这样比较浪费时间
     
    #include <stdio.h>
    int main()
    {
        long long i,n,sum,ans;
        while(~scanf("%lld",&n))
        {
            sum = 0;
            for(i=1;i<=n;i++)
            {
                ans = i*i % 20121215;
                sum = (sum + ans)%20121215;
    
            }
            printf("%lld
    ",sum);
        }
        return 0;
    }
     

    Source

  • 相关阅读:
    selenium获取Cookie操作
    分布式锁-常用技术方案
    合成模式(Composite)-结构型
    享元模式-结构型
    桥接模式-结构型
    适配器模式-结构型
    建造者模式-创建型
    单例和原型模式-创建型
    外观(门面)模式-结构型
    JDK QUEUE队列
  • 原文地址:https://www.cnblogs.com/tianmin123/p/5274547.html
Copyright © 2011-2022 走看看