2017-06-17 242 views
-4

編寫一個程序,要求用戶輸入非負數的整數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++循環

我知道如何拆分偶數和奇數,但我不知道如何把它放在一起。

+1

這是一個使用'std :: accumulate'的單線程。那麼你準備好看到這個解決方案並且理解(使用你自己的研究)什麼是「積累」? – PaulMcKenzie

+0

'if(number%2 == 0){/ * it even * /} else {/ * it's odd * /} –

回答

0

假設你循環雖然XYi是在循環和tot迭代器/電流數是總數,你將輸出,你的循環中,
i甚至:

tot += i; 

i是奇數:

tot *= i; 

您也可以選擇適當的starti ng值爲tot

我會發布完整的代碼,但似乎這是一項任務。

1

正確的解釋:
第一步是檢查輸入是否正確(y大於x且兩個值都是正值)。

然後你初始化你用來返回結果到x(因爲我們總是根據你給我們的例子從x開始)使用的變量:int res = x;

的你有循環:因爲我們從x開始,只是循環從x+1y(包括,再相應地與示例,您給我們):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如果輸入不是「有效」的話。

+0

確實,要改正 – Vivick

+1

是否確定這是一個很好的做法,問題顯然是一項任務? – KyrSt

+1

確實,增加了解釋和擾流板(以防萬一Emendator仍然想看看「成品」)。 – Vivick

0

首先檢查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;