如何将执行代码的时间限制为2秒。代码计算给定数字(输入)是否可以表达为至少两种不同方式的两个立方体的总和。
#include<stdio.h>
int main() {
int n, j, k, int_count;
scanf("%d", &n);
int_count = 0;
for (j=1; j<=n; j++) {
for(k=j+1; k<=n; k++) {
if(j*j*j+k*k*k == n)
int_count++;
}
}
if(int_count >= 2) {
printf("YES");
}
else
printf("NO");
}
答案 0 :(得分:0)
也许只使用time()或gettimeofday()。
#include<stdio.h>
#include<time.h>
int main() {
long n, j, k, int_count;
time_t t;
scanf("%d", &n);
t = time(0);
int_count = 0;
for (j = 1; j <= n; j++)
for(k = j+1; k < n; k++) {
if(j*j*j + k*k*k == n)
if(++int_count > 1) {
puts("YES");
return 0;
}
if (time(0) - t >= 2) {
puts("timeout");
return 1;
}
}
puts("NO");
return 0;
}