
10.05.2008, 17:49
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами:
11099536
Репутация:
518
|
|
2 Системник!!! (CbIcTeMn1k)
Task:√(2+√(2+√(2+√(2+...+√(2+√2) ) ) ) )
Код:
double decide(int curn,int N)
{
double rez;
if(curn<N)
{
rez=sqrt(2+decide(curn+1,N));
}
else
rez=sqrt(2));
return rez;
}
/*
вызов .... */
decide(0,n);
Последний раз редактировалось Delimiter; 10.05.2008 в 17:54..
|
|
|

10.05.2008, 18:41
|
|
Познающий
Регистрация: 22.02.2008
Сообщений: 62
С нами:
9587964
Репутация:
52
|
|
CbIcTeMn1k
А это если на паскале:
Код:
program qwer;
var
q:real;
i,n:integer;
begin
write('Введите n');
read(n);
q:=sqrt(2);
for i:=1 to n-1 do
q:=sqrt(q+2);
write('Ответ: ');
write(q:2:10);
readln;
end.
|
|
|

11.05.2008, 15:52
|
|
Познающий
Регистрация: 04.02.2007
Сообщений: 31
С нами:
10139040
Репутация:
5
|
|
Delimiter, Myst Спасибо вам, оч благодарен...
|
|
|

11.05.2008, 17:23
|
|
Познающий
Регистрация: 15.12.2007
Сообщений: 37
С нами:
9687089
Репутация:
15
|
|
Помогите с решением. Можете, пожалуйста, не писать код, а только разяснить алогоритм,а то так ничему не научусь.
Код:
Имеются N человек, и матрица A(N;N)
Для А справедливо A[i;j]=1, если i и j знают друг друга.
Можно ли разбить всех людей на 2 группы, так, чтоб в каждой группе были только незнакомые люди? Если да, то как.
|
|
|

11.05.2008, 17:32
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами:
11099536
Репутация:
518
|
|
если по условию это можно сделать, разбить всех людей на 2 группы
то проще простого
сортируешь матрицу так что в верхней строчке оказались те у кого больше всех знакомых
берешь 1-го и выбираешь всех с кем он не знаком(ПРОВЕРЯЕШЬ ЧТО НЕ ЗНАКОМЫЕ НЕ ЗНАКОМЫ ДРУХ С ДРУХОМ), это и будет первая группа, а остальные вторая, естественно проверка должна дать, что это действительно так!
В итоге если нельзя так сделать то ответ должен быть "Разбить на 2 группы нельзя"
представь себе человека который знаком сразу с 2-мя человеками, и сразу станет все на место! Куда ты его поместишь и что делать с его знакомыми?
Последний раз редактировалось Delimiter; 11.05.2008 в 17:47..
|
|
|

13.05.2008, 22:13
|
|
Познающий
Регистрация: 15.12.2007
Сообщений: 37
С нами:
9687089
Репутация:
15
|
|
Delimiter, вроде так вот?
Код:
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <conio.h>
#define N 4
int m[N][N];
void fill_m();
void out_m();
int cnt[N];
int main()
{
fill_m();
out_m();
for(int i=0;i<N;i++) // idem po personam
{
for(int j=0;j<N;j++) // idem po znakomstvam
{
if(m[i][j]==1) cnt[i]++;
}
}
int top_m=0; // bolshe vsego znak
int max=0;
for(i=0;i<N;i++)
{
if(cnt[i]>max) {max=cnt[i]; top_m=i;}
}
cout << "\n\nOdna gruppa:\n";
for(int j=0;j<N;j++)
{
if(m[top_m][j]==0) cout << " " << j << " ";
}
cout << " & " << top_m << "\n";
out_m();
getch();
return 0;
}
void fill_m()
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
cout << i << " with " << j <<": ";
cin >> m[i][j];
}
cout << "\n";
}
}
void out_m()
{
for(int i=0;i<N;i++)
{
for(int j=0;j<N;j++)
{
cout << m[i][j];
}
cout << "\n";
}
}
Последний раз редактировалось avton0m; 13.05.2008 в 22:26..
|
|
|

14.05.2008, 22:35
|
|
Новичок
Регистрация: 29.04.2008
Сообщений: 2
С нами:
9490861
Репутация:
1
|
|
Помогите плз! Нада решить задачу:
Составить программу, которая вводит предложение и заменяет все четырёхбуквенные слова на первый символ из этих слов!
Заранее Спасибо!
De-visible:Может ЯП уточнишь?
Sorre, забыл, Pascal
Последний раз редактировалось Stillik; 14.05.2008 в 22:55..
|
|
|

15.05.2008, 19:03
|
|
Новичок
Регистрация: 29.04.2008
Сообщений: 2
С нами:
9490861
Репутация:
1
|
|
Сообщение от Stillik
Помогите плз! Нада решить задачу:
Составить программу, которая вводит предложение и заменяет все четырёхбуквенные слова на первый символ из этих слов!
Заранее Спасибо!
De-visible:Может ЯП уточнишь?
Sorre, забыл, Pascal
Кому интересно, я узнал как она решается!
Код:
program slova;
Uses Crt;
var
stroka, slovo,s : string;
i, max : integer;
begin
ClrScr;
WriteLn('введите текст с любыми разделителями ');
TextColor(Cyan);
ReadLn(stroka);
stroka:=stroka + '.';
i:= 1; TextColor(LightGreen);
while Length(stroka) <> 0 do
begin
if pos(copy(stroka,i,1),' ,.?!-:;') <> 0
then begin
slovo := copy(stroka,1,i-1);
if length(slovo)=4 then
begin
s:=s+' '+slovo[1];
end
else s:=s+' '+slovo;
delete(stroka,1,i);
i := 1;
end
else i := i+1;
end;
writeln(s);
ReadLn;
end.
De-visible: Не забывай теги [code]
Последний раз редактировалось De-visible; 15.05.2008 в 19:36..
|
|
|

12.05.2008, 18:24
|
|
Познающий
Регистрация: 15.12.2007
Сообщений: 37
С нами:
9687089
Репутация:
15
|
|
Спасибо, а не мог ты б рассказать мне математическую сущьность этого алгоритма. Т.е. почему так?
|
|
|

12.05.2008, 20:58
|
|
Banned
Регистрация: 08.04.2005
Сообщений: 446
С нами:
11099536
Репутация:
518
|
|
ну сущности то нет!
Ведь это есть "тупое" раскидывание на 2 группы, суть его сводится к
ЕСЛИ ЧЕЛОВЕК ЗНАЕТ ДРУГОГО ТО ЕГО В ДРУГУЮ ГРУППУ!
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|