Как решить проблему превышения лимита времени?
- Привет!
Я пытался написать код для заполнения случайных чисел в массиве (используя srand) таким образом, чтобы ни одно число не повторялось. Во время исполнения я получил сообщение о превышении лимита времени.
Как я могу решить эту проблему?
Ниже приведен код:
#include<iostream> using namespace std; #include<cstdlib> #include<ctime> int main() { srand(time(NULL)); int *deck=new int[52]; for(int i=0;i<52;i++) deck[i]=-1; int j,top=-1; while(top!=51) { j=rand()%52; if(top==-1) { top++; deck[top]=j; } else { int flag=0,f=0; while(deck[flag]!=-1||flag!=52) { if(deck[flag]==j) f=1; flag++; } if(flag==top+1&&f==0) { top++; deck[top]=j; } } } for(int k=0;k<52;k++) { cout<<deck[k]<<endl; } return 0; }
Что я уже пробовал:
Я попробовал использовать printf и scanf вместо cin и cout, так как они быстрее, но не работают.
[no name]
Как вы получили сообщение о превышении лимита времени? По почте? Телефонный звонок? Конный курьер? И кто или что его прислало?
Ничто в коде, который вы опубликовали, не посылает такого рода сообщения. Итак, простой ответ: для какого-то неизвестного компонента выполнение вашего кода занимает слишком много времени, как говорится в сообщении. Сделать его быстрее.