这段代码如何减少运算时间
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间: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 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平方那个公式啊?
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平方那个公式啊?