Хакеру необходимо составить программу "KeyGenerator", позволяющую подобрать пароли для запуска программного обеспечения "Программа 1". Известо, что пароль (комбинация нулей и единиц) должен состоять из 2*N разрядов. Верным является такой, у которого сумма первых V цифр равна сумме V последних цифр. Помогите хакеру решить эту несложную задачу. До утра ппц горит... Язык или C++ или Pascal или dcc. При желании можно и асьму..
Code: void M_gen_key(char *str,int counter,int Nx2,int V) { int i,l1,l2; if(counter<Nx2) { *(str+counter)='0'; M_gen_key(str,counter+1,Nx2,V); *(str+counter)='1'; M_gen_key(str,counter+1,Nx2,V); } else { //тупость оправдываемая увеличением суммарного кол-ва тактов // на анализ "умного" перебора хвоста for(i=0,l1=l2=0;i<V;i++) { l1+=*(str+i)-0x30; l2+=*(str+counter-i-1)-0x30; } if(l1==l2) { *(str+counter)=0; // vivod kuda hochesh // ........... } } } void CAwsfsfDlg::OnMyGenerate() // обработчик нажатия кнопки { char *str; int N=4; int Nx2=N*2; int V=Nx2/2; //тут подкоректируешь если не всегда так str=new char[Nx2]; M_gen_key(str,0,Nx2,V); delete[] str; } Пользуйся
1. Присвоить целой переменной h третью от конца цифру в записи положительного целого числа k. 2. Числа Фибоначчи (fn) определяются формулами f0=f1=1; fn=fn-1+fn-2 при n=2, 3, . . . Вычислить S – сумму всех чисел Фибоначчи, которые не превосходят 1000. 3. Из-за нелётной погоды необходимо посадить находящиеся в воздухе (над аэропортом) самолёты разных классов на несколько запасных аэродромов. Каждый из запасных аэродромов в состоянии принять k самолётов класса не выше p, где i – номер аэродрома. Посадить самолеты при условии, что для каждого самолета известно расстояние, которое он может пролететь на имеющемся горючем. 4. Создать компонент – регулятор громкости звука на компьютере. Кто сделает стукните в асю Программы школьные
4-я задача неужели такое в школе дают чиста драйвер написать или все таки directX ? .... или все таки прилинковать winmm.lib? .... по 1-й .... такое даже новичек напишет за 5 сек (насколько я понял условие) по 2-й возьмешь Code: long sum (int a1,int a2) { if(a1+a2<1000) return a2+sum(a2,a1+a2); else return a2; } ... printf("Sum=%l",2+sum(1,2)); по 3-й мало параметров для решения! но выглядит как олимпиадная задача выдранная из контекста! Задача простая агоритм "жадный" на отсортированных массивах(сажаем вначале все самолеты с малым количеством горючего), но вся фишка там что сортировка производится во время ввода данных методом прямой вставки а в другом случае превышение по времени!
Нужна помощь! Задание такое: Матрица А из N стpок и N столбцов размещена в одномерном массиве по строкам. Поменять местами К-й и L-й столбцы матрицы (К и L заданы). Результат напечатать по строкам. Написал прогу: Code: #include "stdafx.h" #include <iostream> // for cin/cout #include <string> // for string using namespace std; int main() { // enter data int n; cout << "Enter N: "; cin >> n; cout << "Enter matrix (" << n*n << " numbers):\n"; int a[10000]; // matrix by lines for (int i=0; i<n*n; ++i) cin >> a[i]; int k, l; cout << "Enter K: "; cin >> k; cout << "Enter L: "; cin >> l; // swap k and l columns for (int i=0; i<n; ++i) swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l] // output result cout << "Result:\n"; for (int i=0; i<n; ++i) { for (int j=0; j<n; ++j) cout << a[i*n+j] << ' '; cout << '\n'; } getchar(); getchar(); return 0; } Но забыл, что нужно не вводить числа в матрицу, а случайно генерировать.... Пример получения случайного числа: Code: #include <time.h> #include <iostream> srand(time(0));// случайные числа зависят от времени A[i][j]=rand()%10; //Случайное число от 0 до 10 Сделайте, чтобы прога работала с случайной генерацией. Просто нет сейчас возможности самому эти коды совместить. Заранее спасибо!
код примерно такой: Code: srand(time(0)); for(int i=0;i<=n-1;i++) { *** for(int j=0;j<=n-1;j++) *** { *** *** massiv[i][j]=rand()%10;//10 диапозон случайных значений (0-10) } } нужно вставить вместо: Code: nt a[10000]; // matrix by lines for (int i=0; i<n*n; ++i) cin >> a[i]; int k, l; cout << "Enter K: "; cin >> k; cout << "Enter L: "; cin >> l; откомпильте плиз и потестите... если что исправьте. Спасибо!
Небольшая прозьба, просто сам че-то неврублюсь пока никак .. кроче есть прога, все написано, пашет.. раскрашена цветами. По заданию прога выводит 2 матрицы: первая исходная, а вторая с заменой местами двух столбцов. Так вот эти столбцы в первой и второй матрице надо выделить разными цветами, чтобы было видно. вот прога: Code: #include "stdafx.h" #include <iostream> // for cin/cout #include <string> // for string #include <time.h> #include <windows.h> using namespace std; HANDLE hStdout; int main() { hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY); int n; SetConsoleTextAttribute(hStdout, 7); cout << "Enter N: "; cin >> n; while(n<=0) { cout << "\nerror N\nEnter N: "; cin >> n; } SetConsoleTextAttribute(hStdout, 3); cout << "generate...\n"; int a[10000]; srand(time(0)); for (int i=0; i<n*n; ++i) { a[i]=rand()%10; } int k=0, l; SetConsoleTextAttribute(hStdout, 4); cout << "Enter K: "; cin >> k; while(k>n&&k<0) { cout << "\nerror K\nEnter K: "; cin >> k; } SetConsoleTextAttribute(hStdout, 8); cout << "Enter L: "; cin >> l; while(l>n&&l<0) { cout << "\nerror L\nEnter L: "; cin >> l; } for (int i=0; i<n; ++i) { for (int j=0; j<+n; ++j) cout << a[i*n+j] << ' '; cout << '\n'; } // swap k and l columns for (int i=0; i<n; ++i) swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l] // output result SetConsoleTextAttribute(hStdout, 6); cout << "Result:\n"; SetConsoleTextAttribute(hStdout, 6); for (int i=0; i<n; ++i) { for (int j=0; j<+n; ++j) cout << a[i*n+j] << ' '; cout << '\n'; } int x; int i; if (i==k){SetConsoleTextAttribute(hStdout, 18);} getchar(); getchar(); return 0; } Заранее спасибо!
Code: #include "stdafx.h" #include <iostream> // for cin/cout #include <string> // for string #include <time.h> #include <windows.h> using namespace std; HANDLE hStdout; int main() { hStdout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdout, BACKGROUND_INTENSITY); int n; SetConsoleTextAttribute(hStdout, 7); cout << "Enter N: "; cin >> n; while(n<=0) { cout << "\nerror N\nEnter N: "; cin >> n; } SetConsoleTextAttribute(hStdout, 3); cout << "generate...\n"; int a[10000]; srand(time(0)); for (int i=0; i<n*n; ++i) { a[i]=rand()%10; } int k=0, l; SetConsoleTextAttribute(hStdout, 4); cout << "Enter K: "; cin >> k; while(k>n&&k<0) { cout << "\nerror K\nEnter K: "; cin >> k; } SetConsoleTextAttribute(hStdout, 8); cout << "Enter L: "; cin >> l; while(l>n&&l<0) { cout << "\nerror L\nEnter L: "; cin >> l; } // Добавление здесь //************************** for (int i=0; i<n; ++i) { for (int j=0; j<n; ++j) { if( j == k - 1) SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY); if( j == l - 1 ) SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << a[i*n+j] << ' '; if( j == k - 1 || j == l - 1 ) SetConsoleTextAttribute(hStdout, 8); } cout << '\n'; } // swap k and l columns for (int i=0; i<n; ++i) swap (a[i*n+k-1], a[i*n+l-1]); // swap Matr[i][k] and Matr[i][l] // output result SetConsoleTextAttribute(hStdout, 6); cout << "Result:\n"; SetConsoleTextAttribute(hStdout, 6); // Добавление здесь //************************** for (int i=0; i<n; ++i) { for (int j=0; j<n; ++j) { if( j == l - 1 ) SetConsoleTextAttribute (hStdout, FOREGROUND_BLUE | FOREGROUND_INTENSITY); if( j == k - 1 ) SetConsoleTextAttribute (hStdout, FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << a[i*n+j] << ' '; if( j == k - 1 || j == l - 1 ) SetConsoleTextAttribute(hStdout, 8); } cout << '\n'; } int x; int i; if (i==k){SetConsoleTextAttribute(hStdout, 18);} getchar(); getchar(); return 0; }
Можно еще и так Code: for (i=0; i<n; ++i) { for (int j=0; j<+n; ++j) { if (j == k-1 || j == l-1) SetConsoleTextAttribute(hStdout, 4); else SetConsoleTextAttribute(hStdout, 6); cout << a[i*n+j] << ' '; } cout << '\n'; }
Алгоритм RSA: проблема нахождения открытой экспоненты. (Visual Basic 6.0) Мне нужно выбрать любое целое число, которое было бы больше единицы и меньше данного и которое было бы взаимно простым с этим данным (выбор числа e при реализации алгоритма шифрования RSA - http://ru.wikipedia.org/wiki/Rsa). Никак не могу понять, как это сделать, точнее как это именно записать кодом. Буду очень признателен за помощь. Заранее Благодарю!
Лаба Помогите с лабораторкой: Задание А: Создать два файла, содержащих сведения о десяти нападающих хоккейных команд "Динамо" и "Спартак" соответсвенно: имена нападающих, число заброшеных шайб, сделанные голевые передачи, заработанное штрафное время. Задание Б: написать программу, которая по данным, извлечённым из этих файлов, создаёт новый третий файл, содержащий имя, команду, сумму очков(голы+ передачи) для шести лучших игроков обеих команд. Имена и показатели результативных хоккеистов вывести на экран. Язык С++.
А Code: #include<stdio.h> void main(void) { FILE *file1; FILE *file2; char ab[]=""; int i = 1; file1 = fopen( "Dinamo.txt", "w" ); file2 = fopen( "Spartak.txt", "w" ); printf("Dinamo \n"); while(i!=11) { printf("Igrok - %d\n",i); printf("Name: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file1 ); printf("Shaibi: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file1 ); printf("Peredachi: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file1 ); printf("Straf: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file1 ); i++; } printf("================================================== \n"); printf("Spartak \n"); i=1; while(i!=11) { printf("Igrok - %d\n",i); printf("Name: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file2 ); printf("Shaibi: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file2 ); printf("Peredachi: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file2 ); printf("Straf: "); scanf("%s \n",ab); fputs( ab, file1 ); fputs( "\r\n", file2 ); i++; } fclose( file1 ); fclose( file2 ); } извеняюсь за кривость
Эта программа переводит футы и дюймы в метры и сантиметры. В метры переводятся правильно, а сантиметры отображаются отрицательным числом. В чём ошибка? Формат ввода: 12F 23D (F-футы D-дюймы) А выводит примерно так: 12M -23SM код C++ Code: #include <conio.h> #include <iostream.h> int main() { double d,c,f; int l,k,s,t,b; int z; char m[10]; double y; char x[10]; double h; printf("vvedite | ** , gde | -luboe chislo, **-F,D,M,SM\n"); k=scanf("%lf %s", &y, m); t=scanf("%lf %s", &h, x); if (strcmp(m,"F")==0) if (strcmp(x,"D")==0){ c=y*0.3048; d=h*2.54/100; f=c+d; l=(int)f; z=(l-f)*100; cout << "\n " << l<<"M "<<z<<"SM"; getch(); } }
Программа не правильно переводис в СМ даже если бы было "+" а так если у тебя проблема именно в "-" Code: z=(f-l)*100; и будет тоже самое токо с "+"
Code: c=y*0.3048; d=h*2.54; cout << "\n" << c<<"M "<<d<<"SM"; vvedite | ** , gde | -luboe chislo, **-F,D,M,SM 12F 23D 3.6576M 58.42SM переводит правильно.. что ты намудрить пытаешься?
кто может написать прогу которая умножает число из 500 знаков на любое введенное с клавиатуры число? с++