編寫一個程序,要求用戶輸入非負數的整數X和Y.使用一個循環,在X和Y之間添加和相乘整數。如果數字是偶數,將其添加到總數中。如果數字是奇數,則乘以它。例如,如果X = 5且Y = 10,則程序應計算((5 + 6)* 7 + 8)* 9 + 10 = 775。如果X = 2且Y = 5,則計算(2 * 3 + 4)* 5 = 50。偶數和奇數的C++循環
我知道如何拆分偶數和奇數,但我不知道如何把它放在一起。
編寫一個程序,要求用戶輸入非負數的整數X和Y.使用一個循環,在X和Y之間添加和相乘整數。如果數字是偶數,將其添加到總數中。如果數字是奇數,則乘以它。例如,如果X = 5且Y = 10,則程序應計算((5 + 6)* 7 + 8)* 9 + 10 = 775。如果X = 2且Y = 5,則計算(2 * 3 + 4)* 5 = 50。偶數和奇數的C++循環
我知道如何拆分偶數和奇數,但我不知道如何把它放在一起。
假設你循環雖然X
到Y
和i
是在循環和tot
迭代器/電流數是總數,你將輸出,你的循環中,
當i
甚至:
tot += i;
當i
是奇數:
tot *= i;
您也可以選擇適當的starti ng值爲tot
。
我會發布完整的代碼,但似乎這是一項任務。
正確的解釋:
第一步是檢查輸入是否正確(y大於x且兩個值都是正值)。
然後你初始化你用來返回結果到x
(因爲我們總是根據你給我們的例子從x
開始)使用的變量:int res = x;
。
的你有循環:因爲我們從x
開始,只是循環從x+1
到y
(包括,再相應地與示例,您給我們):for(int i = x+1 ; i <= y; i+=1)
在這個循環中,你擁有的當前值,如果此當前值爲偶數,將其添加到結果變量(res += i;
)中,否則(奇數)將結果乘以當前值(res *= i
)。
循環結束後,您可以返回結果變量並完成作業。
/\劇透:以下
這裏完整的代碼是完整的代碼
int func(int x, int y){
if(y>x && x>0){
int res = x;
for(int i = x+1 ; i <= y ; i+=1){
if(i%2==0)
res += i;
else
res *= i;
}
return res;
}
return -1;
}
我只是說,它返回的事實-1如果輸入不是「有效」的話。
首先檢查y是否大於X.如果更大,運行一個從X開始到Y結束的循環。取一個存儲總量的變量。如果循環變量甚至將該值添加到總變量中,並且如果循環變量是奇數,則將該值與總變量的值相乘。
int total=0;
if(y>x)
{
for(int i=x;i<=y;i++)
{
if(i%2==0) //if even
{
total += i;
}
else //if odd
{
total *= i;
}
}
}
cout<<total;
這是一個使用'std :: accumulate'的單線程。那麼你準備好看到這個解決方案並且理解(使用你自己的研究)什麼是「積累」? – PaulMcKenzie
'if(number%2 == 0){/ * it even * /} else {/ * it's odd * /} –