今天看到一个站外题,非常基础,但是不知道怎么提高效率:
输入共有 n + 1 行.
第 1 行为一个整数 n.(n<=10000)
第 2 ~ n + 1 行, 每行为2个整数 A, B.
输出共有 n 行, 每行为 5 个整数, 分别对应 A, B 的和, 差, 积, 商以及 A 除以 B 的余数. 如果 B 为 0, 则商和余数为 NaN. 所有的数据范围在 int 内, 不会出现溢出的情况.
主要耗时的测试点就是2个5000对数据的测试点和1个10000对数据的测试点
这是我的代码:
#include <stdio.h>
int s[10000][2],n,a,b,c;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d %d",&s[i][0],&s[i][1]);
for(int i=0;i<n;i++){
a=s[i][0]+s[i][1];
b=s[i][0]-s[i][1];
c=s[i][0]*s[i][1];
printf("%d %d %d ",a,b,c);
if(s[i][1]==0) printf("NaN NaN\n");
else printf("%d %d\n",s[i][0]/s[i][1],s[i][0]%s[i][1]);
}
return 0;
}
耗时5ms
但是已经有大佬凹到2ms了。想知道怎么样才能提高效率,非常感谢!