|
|
|
|
|
|
|
Вернуться
| 1 Туров Владимир Владимирович, 04 августа 2015 г. 1:08:27 | |
"О таких вещах нужно в новостях предупреждать, чтобы пользователи не ломали голову." Вообще - то в новостях об этом и написано, читай новость от 03.05
|
|
|
| 2 Денис Розимовский, 31 июля 2015 г. 0:17:40 | |
|
Лично я предпочитаю string. И, если не ошибаюсь - length() и strlen работают за константное время.
|
|
|
| 3 Денис Розимовский, 31 июля 2015 г. 0:15:58 | |
|
strlen с асимптотикой от длинны строки? Весело же приходится, когда нужно работать с большими строками и нужно постоянно использовать эту функцию...вы, наверное, и там вините "медленный сервер" :)
|
|
|
| 4 Хворых Павел, 30 июля 2015 г. 22:30:33 | |
Насчет fstream вы уже сами осознали свою неправоту. Впрочем, судя по вашим комментариям, вы готовы винить кого угодно, кроме самого себя. Теперь насчет strlen. "для длинны строки мне проще свою функцию написать". Проще? Что может быть проще вызова strlen? Которая к тому же будет работать быстрее самописного велосипеда. Теперь насчёт sqrt. Дело в том, что до с++11 у функции sqrt было три перегрузки: double sqrt (double x); float sqrt (float x); long double sqrt (long double x); Когда вы вызываете sqrt с аргументом int, компилятор не знает, какую перегрузку ему вызывать. В c++11 добавили специальную шаблонную перегрузку template<typename T> double sqrt (T x); которая устраняет эту проблему.
|
|
|
| 5 Губила Родион Юрьевич, 30 июля 2015 г. 22:09:55 | |
|
Видимо, компиляторы опять меняли, fstream потерял большую часть функций которыми я постоянно пользовался. О таких вещах нужно в новостях предупреждать, чтобы пользователи не ломали голову.
|
|
|
| 6 Губила Родион Юрьевич, 30 июля 2015 г. 21:40:47 | |
|
если мне не изменяет память, то раньше я пользовался sqrt без сmath. Во всяком случае в VC++. подключил его, вроде скомпилировалось. А то, что вы про дабл написали - бред, там все нормально должно быть.
|
|
|
| 7 Губила Родион Юрьевич, 30 июля 2015 г. 21:34:45 | |
|
в fstream все необходимые функции есть, бессмысленно подключать что-то еще. для длинны строки мне проще свою функцию написать
|
|
|
| 8 Хворых Павел, 30 июля 2015 г. 19:14:57 | |
|
Нашёл еще одну проблему. sqrt(n) - тут неоднозначный вызов. Явно скастуйте n к double, т.е. напишите sqrt((double)n)
|
|
|
| 9 Хворых Павел, 30 июля 2015 г. 19:09:45 | |
Ошибку компиляции слабо посмотреть? Заранее скажу, что gcc не компилит скорее всего потому, что вы cmath подключить забыли. Да и cstdio тоже. И откройте для себя функцию strlen.
|
|
|
| 10 Губила Родион Юрьевич, 30 июля 2015 г. 18:59:41 | |
#include <fstream> using namespace std; int pr(int n) { for (int i = 2; i<=sqrt(n); i++) if (n % i == 0) return 0; return 1; } short len(char s[]) { short i=0; while (s[i]!='\0') i++; return i; } int main() { ifstream in("input.txt"); ofstream ou("output.txt"); int n, k=0, i, s, p=0; char c[6]; in>>n; int *a=new int[n]; for (i=0; i<n; i++) {in>>a[i]; p=0; s=1; while (a[i]>p) { s++; if(pr(s)) { sprintf(c, "%d", s); p+=len(c); } } s=len(c)-(p-a[i])-1; ou<<c[s]; } return 0; }
|
|
|
| 11 Губила Родион Юрьевич, 30 июля 2015 г. 18:58:42 | |
|
Во-первых: ваши компиляторы - дерьмо. У меня на вижуал студии 2012 все компилируется прекрасно, во-вторых: укажите, пожалуйста, что вашему не нравится, чтобы я в будущем писал по-другому.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |