У меня есть некоторые проблемы с тем, как устанавливать циклы 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. Это правильно?
Вы можете подумать о переписывании части 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--;
}
Пожалуйста, не стесняйтесь спрашивать, есть ли у вас путаница.
Вы должны установить sum = a;
перед входом в while
цикл и обновлять его в каждой итерации как sum += b;
, Надеюсь, это решит вашу проблему.