Форум программистов, компьютерный форум CyberForum.ru

Последовательность - C++

Войти
Регистрация
Восстановить пароль
 
StrelokCj
49 / 49 / 12
Регистрация: 15.01.2013
Сообщений: 290
21.03.2013, 21:07     Последовательность #1
Каждое натуральное число можно представить в виде суммы нескольких строго последовательных натуральных чисел. Например, число 6 можно представить в виде суммы из одного (6) или трех (1+2+3) чисел.

Требуется написать программу, которая определит максимальное количество чисел в таком разложении.

В Delphi данную задачу решил так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
n,i,s,c,j:LongInt;
begin
n:=StrToInt(edit1.text);
i:=0;
s:=0;
repeat
i:=i+1;
c:=0;
for j:=i to n do begin
  c:=c+j;
  if (c=n) then s:=s+1;
end;
until i=n;
label3.Caption:='Максимальное количество чисел в разложении'+chr(13)
+' числа '+inttostr(n)+' на сумму строго последовательных '+chr(13)
+'натуральных чисел='+inttostr(s);
end;
Эту же задачу решил переписать в C++ :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int n,j,c,s,i;
j=0;
s=0;
n=StrToInt(Edit1->Text);
do {
j=j+1;
c=0;
for (i = j; i == n; i++) {
c=c+i;
if (c==n) {
s=s+1;
}
}
}
while (j<n);
Label2->Caption=IntToStr(s);
}
И когда как в Delphi все правильно выполняется, в C++ упорно выводит ответ "1" при любом вводимом значении.
Подскажите, в чем может быть ошибка?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 21:07     Последовательность
Посмотрите здесь:

C++ Последовательность
Последовательность C++
C++ Последовательность
C++ последовательность
Последовательность C++
C++ Последовательность
C++ Последовательность
C++ последовательность
C++ Последовательность а1, a2, . . . , аn
C++ Последовательность
Последовательность C++
последовательность C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,113
21.03.2013, 21:16     Последовательность #2
Не знаю может ошибка в этом ??
Присмотритесь к этому циклу
C++
1
for (i = j; i == n; i++) {
П.С. особенно на условие выхода из цикла.
StrelokCj
49 / 49 / 12
Регистрация: 15.01.2013
Сообщений: 290
21.03.2013, 21:22  [ТС]     Последовательность #3
Спасибо большое, оказывается на выходе неправильно был указан параметр:
C++
1
for (i = j; i <= n; i++) {
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,113
21.03.2013, 21:23     Последовательность #4
Ну вот все и решилось
Yandex
Объявления
21.03.2013, 21:23     Последовательность
Ответ Создать тему
Опции темы

Текущее время: 01:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru