2016-04-18 9 views
1

私は宿題について質問します。奇数を数えて印刷するプログラム

プログラムを実行する必要があります。

* Asks from user the number of clients (not negative int number) 
    * Uses while and gets total number of flowers 
    * Print final sum to screen. 

私たちのようなテキストを持っている: それはだ一日とflowershopが女性に花を与えることにしたレディース。しかし、事は、奇数だけがそれらを得ることです。 最初のものは1、2番目のものは何も得られず、3番目のものは3番目のもの、5番目のものは5番目のものを取得します。 7を挿入すると、奇数の合計は16:1 + 3 + 5 + 7 = 16になります。ユーザーが8を挿入すると、合計は16:1 + 3 + 5 + 7 = 16となります。 奇数は '女性の数よりも多い。

女性の人数を入力する必要があります。

私はこれやった:

women = int(input("Insert number of buyers: ")) 
i = 1 
sum = 0 
while i < women: 
    i = i + 2 
    sum = sum + i 
print("Total of flowers is: " + str(women)) 

をしかし、それは仕事をdosentと私の脳は、すでにアイデアを全くあり:(

最終的な結果は次のようになります。

Insert number of buyers: 7 
Total of flowers is : 16 
+0

'あなたの増分' i'前sum' 'へi'を追加します。また、 'sum'を出力します。 –

+2

「i」が奇数かどうかチェックするのはなぜですか? –

+0

私はZachiに同意します:おそらく1から女性の数まで繰り返し、奇数だけを追加するということです。 (私はあなたがこの点で「もし」について教えられたと仮定しています;もしあなたがしていなければ、あなたがしていることに近いものが良いです。) –

答えて

2

ありあなたのコードに3つの欠陥があります:

  • (女性をカウントする1つのベースのインデックスを使用して、間違ったループ条件を使用して(最初の女性が3つの花を取得するという意味)sumをインクリメントする前にi
  • の増分women=7i==7場合、ループ本体は実行されませんので、i <= womenする必要があります)
  • は答え(sum)を印刷していないが、ここで入力(women

は固定バージョンです:

women = int(input("Insert number of buyers: ")) 
i = 1 
sum = 0 
while i <= women: 
    sum = sum + i 
    i = i + 2 
print("Total of flowers is: " + str(sum)) 
0

はリスト内包でこれを行います。

women = int(input("Insert number of buyers: ")) 
flowers = sum(i for i in range(1, women+1) if i%2 == 1) 
print("Total of flowers is:", flowers) 

それともrangeのステップパラメータを使用して:

また
women = int(input("Insert number of buyers: ")) 
flowers = sum(range(1, women+1, 2)) 
print("Total of flowers is:", flowers) 

それは次のようになりますループで:

women = int(input("Insert number of buyers: ")) 
flowers = 0 
for i in range(1, women+1): 
    if i%2 == 1: 
     flowers += i 
print("Total of flowers is:", flowers) 

またはルックをこのようにループを使用し、rangeのステップパラメータ:

将来の生産コードで
women = int(input("Insert number of buyers: ")) 
flowers = 0 
for i in range(1, women+1, 2): 
    flowers += i 
print("Total of flowers is:", flowers) 

、あなたはforループを使用してバリアント1または2

+0

彼はインターネットから彼の宿題への答えを持っていることを広告する質問者のための素晴らしい方法のように聞こえる。 –

+0

(私は、質問者の宿題の計算を実際のコードでやりたければ、もちろんwhileループを使うよりもこれを行う方がきれいであることに同意します) –

+0

'if'を'range(1、women + 1,2)' –

0

のために行くだろう、私の意見には、単純になります。

women = int(input("Insert number of buyers: ")) 
sum = 0 

for i in range(1,women+1): 
    if i%2 != 0: # If i is odd 
     sum += 1 

print("Total of flowers is: " + str(sum)) 

または

women = int(input("Insert number of buyers: ")) 
sum = sum(i for i in range(1,women+1) if i%2 != 0) 

print("Total of flowers is: " + str(sum)) 
0

あなただけ改訂コード:

women = int(input("Insert number of buyers: ")); 
i = 1; 
sum = i; 
if women%2==0: 
    women=women-1; 
while i < women: 
    i = i + 2; 
    sum = sum + i; 
print("Total of flowers is: " + str(sum));