C ++ Пока вопросы цикла

У меня есть некоторые проблемы с тем, как устанавливать циклы while и do / while.

Например, у меня есть проблема, когда на входе у меня есть 2 целых числа (назовем их a, b), и мне нужно вычислить сумму. Сумма является особенной: a + (b) + (b — 1) + (b — 2) +… + 0. В то время как цикл обязателен. Но я не знаю, как это установить. Я пытался, но я не знаю, правильно ли это. Может ли кто-нибудь дать мне знать это?

Здесь есть мой код

#include <iostream>
#include <stdlib.h>

using namespace std;

int main(int argc, char *argv[])
{
// Variables
int a,b;
int sum;

cout<<"Insert a:";
cin>>a;
cout<<"Insert b:";
cin>>b;

// Show a,b
cout<<"variables:"<<" "<<a<<" e "<<b<<endl;

// Condition: a>0 & b>0
while(a>0 && b>0)
{
sum=a+b;
b--;
} cout<<"Sum:"<<sum;
system("PAUSE");
return 0;
}

Например, если я поставлю a = 5 и b = 9, сумма равна 6. Это правильно?

1

Решение

Вы можете подумать о переписывании части while. Я бы предложил вам проверить только b в то время как состояние. Потому что вы меняете b только значение Пожалуйста, смотрите следующий код —

sum = a; // as you want to add a only once, you should add a to sum before the loop
while(b)
{
sum += b;
b--;
}

Пожалуйста, не стесняйтесь спрашивать, есть ли у вас путаница.

2

Другие решения

Вы должны установить sum = a; перед входом в while цикл и обновлять его в каждой итерации как sum += b;, Надеюсь, это решит вашу проблему.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector