На паскалі: program _1; var a,b,c,i:integer; begin write('Введіть чисельник дробу: '); readln(a); write('Введіть знаменник дробу: '); readln(b); if a>b then c:=a else c:=b; for i:=1 to c do if ((a mod i)=0) and ((b mod i)=0) then begin a:=a div i; b:=b div i; end; writeln(a,'/',b); end.
На Сішці:
#include <iostream> using namespace std; int main(){ setlocale(LC_ALL, "Ukr"); int a,b,c,i; cout<<"Введіть чисельник: "<<endl; cin>>a; cout<<"Введіть знаменник: "<<endl; cin>>b; (a>b)?c=a:c=b; for (i=1;i<=c;i++){ if ((a%i==0)&&(b%i==0)){ a=a/i; b=b/i; } } cout<<a<<"/"<<b<<endl; system("pause"); } Буду вдячний за "Кращу відповідь"
Дурацкая по своей трудоемкости задача, если делать её вручную. А если написать полную программу и вставить туда счетчик вызовов F(n), то окажется, что для вызова F(6) процедура будет вызвана 97 раз. При каждом вызове выводится звездочка, поэтому их будет выведено тоже 97.
Проверка выполнялась по следующей программе: var k:integer;
procedure F(n: integer); begin writeln('*'); k:=k+1; if n > 0 then begin F(n - 3); F(n - 2); F(n div 2); F(n div 2); end end;
program _1;
var a,b,c,i:integer;
begin
write('Введіть чисельник дробу: ');
readln(a);
write('Введіть знаменник дробу: ');
readln(b);
if a>b then c:=a else c:=b;
for i:=1 to c do
if ((a mod i)=0) and ((b mod i)=0) then
begin
a:=a div i;
b:=b div i;
end;
writeln(a,'/',b);
end.
На Сішці:
#include <iostream>
using namespace std;
int main(){
setlocale(LC_ALL, "Ukr");
int a,b,c,i;
cout<<"Введіть чисельник: "<<endl;
cin>>a;
cout<<"Введіть знаменник: "<<endl;
cin>>b;
(a>b)?c=a:c=b;
for (i=1;i<=c;i++){
if ((a%i==0)&&(b%i==0)){
a=a/i; b=b/i;
}
}
cout<<a<<"/"<<b<<endl;
system("pause");
}
Буду вдячний за "Кращу відповідь"
А если написать полную программу и вставить туда счетчик вызовов F(n), то окажется, что для вызова F(6) процедура будет вызвана 97 раз. При каждом вызове выводится звездочка, поэтому их будет выведено тоже 97.
Проверка выполнялась по следующей программе:
var
k:integer;
procedure F(n: integer);
begin
writeln('*');
k:=k+1;
if n > 0 then begin
F(n - 3);
F(n - 2);
F(n div 2);
F(n div 2);
end
end;
begin
k:=0;
F(6);
Writeln(k)
end.