具有执行时间限制的多维数据集的总和

时间:2017-09-17 16:09:27

标签: c

如何将执行代码的时间限制为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");

}

1 个答案:

答案 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;
}