作业帮 > 综合 > 作业

这段代码如何减少运算时间

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/23 22:16:48
这段代码如何减少运算时间
#include<stdio.h>
int main()
{
    int t;
    scanf("%d\n",&t);
    int a[t][3],i;
    for(i=0;i<=t-1;i++)
    {
        scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
    }
    int f,d,sum;
    for(i=0;i<=t-1;i++)
    {
        sum=0;
        for(d=a[i][0];d<=a[i][1];d=d+2)
        sum=sum+d*d;
        f=sum%a[i][2];
        printf("%d\n",f);
    }

}
这段代码如何减少运算时间
#include <stdio.h>

int getResult(int a, int b, int m)
{
  int n = (b - a) / 2 + 1;
  int sum = n*a*b + 2*n*(n-1)*(2*n-1) / 3;
  return sum % m;
}

int main()
{
  int i;
  scanf("%d", &i);
  while(i --> 0) {
    int a, b, m;
    scanf("%d%d%d", &a, &b, &m);
    printf("%d\n", getResult(a, b, m));
  }
  return 0;
}

算sum的过程直接套公式就好了……?


再问: 不是那个1^2+2^2+3^2+...+n^2的公式啦= =
再答: 我用这个程序过了你的测试数据啊? 我没说这用的是1平方2平方那个公式啊?