Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 26.10.2019
Сообщений: 46
1

Переписать код с Паскаль на C++

21.11.2019, 21:32. Показов 397. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите переписать код с Паскаль на C++.

Сначала - то, что нужно, затем - мой код.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var a,b,kor : longint;
n : integer;
ma,mb : array[1..40] of longint;
 
Procedure Vyvod; forward;
 
Procedure Resh;
var x,del_a, del_b:longint;
i: integer;
Begin
kor := round(exp((1/n)*ln(a*b)));
x:=1;
for i := 1 to n do x=x*kor;
if x<>a*b then begin writeln('NO');Halt; end;
del_a:=1, i := 1;
While (i<=n) and (del_a<=a) do
Begin
del_b:=kor div del_a;
if(a mod del_a=0)and(kor=del_a*del_b)and(b mod del_b=0)then
Begin
a:=a div del_a;
b:=b div del_b;
ma[i]:=del_a;mb[i]:=del_b;
i:=i+1;
End;
Else
Begin
del_a:=del_1+1;
End;
if(n=i+1)and(a=1)then Vyvod;
End;
End;
 
Procedure Vyvod;
var i : integer;
Begin
writeln(kor);
for i := 1 to n do write(ma[i], ' ');
writeln;
for i := 1 to n do write(ma[i], ' ');
writeln;
halt;
End;
 
BEGIN
Readln(a,b,n);
Resh;
Vyvod;
writeln('NO');
END.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
#include <math.h>
using namespace std;
 
double round(double number)
{
    return number < 0.0 ? ceil(number - 0.5) : floor(number + 0.5);
}
 
int main()
{
  int a,b,n;
  cin >> a >> b >> n;
  int ma[40], mb[40];
  int kor=pow(a*b, 1.00/n);
  int x=1;
  for(int i = 1; i <= n; i++)
  {
    x*=kor;
  }
  if(x!=a*b){cout<<"No";return 0;}
  int del_a=1, i = 0, cdiv = 0;
  while(i<=n&&del_a<=a)
  {
    int del_b = kor / del_a;
    if(a%del_a==0&&kor==del_a*del_b&&b%del_b==0)
    {
      a=a/del_a;
      b=b/del_b;
      ma[i]=del_a;
      mb[i]=del_b;
      i+=1;
      cdiv+=1;
    }
    else
    {
      del_a+=1;
    }
  }
  if(a==1&&n==cdiv)
  {
    cout<<kor<<endl;
    for(int i = 0; i < n; i++)
    {
      cout<<ma[i]<<" ";
    }
    cout<<endl;
    for(int i = 0; i < n; i++)
    {
      cout<<mb[i]<<" ";
    }
    cout<<endl;
    return 0;
  }
  cout<<"NO";
}
Добавлено через 6 минут
Актуально
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2019, 21:32
Ответы с готовыми решениями:

Переписать код с паскаль на С++
это 1 program 1; var a,b:array of real; i,n:integer; begin readln(n); setlength(a,n);

Переписать код с паскаль на С++
Program 1; Var mas:array of real; i,m,n,kolvo:integer; shar,v,r:real; Begin // Задаем...

Переписать код из паскаль в с++
вот сам код var a, min:real; begin min:=99999; while not(eoln()) do begin ...

Нужно переписать код в паскаль
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; bool simple(int x) { for (int...

4
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
21.11.2019, 21:32 2
Цитата Сообщение от zLaiNox Посмотреть сообщение
Актуально
Лучше напишите постановку задачи.
0
1 / 1 / 0
Регистрация: 26.10.2019
Сообщений: 46
21.11.2019, 21:43  [ТС] 3
Написать программу разложения целых положительных чисел A и B на N целых положительных делителей a1,a2...aN, b1,b2...bN, что выполняются условия a1*a2...aN=A, b1*b2*bN=B, a1*b1=a2*b2...=aN*bN, где a1..aN - делители числа A, b1..bN - делители числа B.
Если такого варианта нет - вывесть NO

Пример:
4 16 12
вывод:
8
2 2
4 4

Добавлено через 4 минуты
Акутально
0
1 / 1 / 0
Регистрация: 26.10.2019
Сообщений: 46
22.11.2019, 14:40  [ТС] 4
Актуально

Добавлено через 2 часа 23 минуты
Актуально
0
Life Builder
532 / 496 / 374
Регистрация: 12.01.2011
Сообщений: 1,754
22.11.2019, 17:28 5
Цитата Сообщение от zLaiNox Посмотреть сообщение
Пример:
4 16 12
вывод:
8
2 2
4 4
Ничего не понятно в этом примере откуда взялось 8. как я понял
А=4 В=16 N=12
что такое 8? Это как я понимаю а1*a2 только зачем он нужен если, в задании его нет, или это что-то еще?
А=4=2*2, -А где тут 12 делителей, или имелось ввиду вывести столько сколько их есть
В=16=4*4, -то же самое
0
22.11.2019, 17:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.11.2019, 17:28
Помогаю со студенческими работами здесь

Нужна помощь программистов которые смогу переписать код из Паскаль в С++
Добрый день! Нужна помощь программистов которые смогу переписать код из Паскаль в С++, поможет кто...

Нужно переписать код на С# с Паскаль
Вот код на Паскале. var xx,yy:array of real; a1,b1,c1,st,s_mn:real; i,n:integer; procedure...

Нужно код делфи переписать на паскаль
Дан двухмерный массив размером nxn, заполненный целыми числами а) все его отрицательные элементы...

Перевести код из паскаль АБС в фри паскаль
Необходимо перевести этот код из паскаля АБЦ в фрипаскаль Спасибо! program test; const n=20;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru