2016-09-03 10 views
-1

に1の合計を印刷する方法をタイトルにこの質問をC++初心者。ユーザ入力一桁の番号は、その番号

例に非常に確認されませんでした:CIN >> 5、< < 1 + 2 + 3 + 4 + 5

COUT

私は大学でC++クラスに入っています。私たちはただ出発しています。私はforループを使用する必要があることを知っているが、私はそれが私が探しているものを印刷するためにどこに行くのかわからないx(xはユーザが入力した数字)の番号1の合計です

#include <iostream> 
using namespace std; 



int main() 
{ 
    int x, i ; 
    int sum = 0 ; 
    cout << "Please enter a single digit integer: " ; 
    cin >> x ; 

    for(i = 1 ; i <= x ; i++) 
     if(x <= 9) 
      sum = x + i ; 
    cout << sum << endl ; 

} 

これはおそらくオフになっていることはわかっていますが、私はこれまでのことを皆さんに伝えたいと思います。助けてください!

+0

あなたは総和右をしたいですか?例えば、cin >> 6の場合、合計は21です。 – Abhishek

+3

ループは必要ありません。 'cout << x *(x + 1)/ 2 << endl; –

+0

タイトルとディスカッションで「 - 」を「to」に変更します。ほとんどの人は " - "を "マイナス"と解釈して混乱させます。 –

答えて

4
  1. ifを削除してください。コードには影響しません。 (もしもx > 9の場合はそれを破壊する)
  2. sum = sum + i;そうでなければ、その値を上書きするだけです。よりエレガントなもののようになりますsum += i;

次のようになります。

int main() 
{ 
    int x; 
    int sum = 0; 
    cout << "Please enter a single digit integer: " ; 
    cin >> x ; 
    for(int i = 1 ; i <= x ; i++) 
     sum += i; 
    cout << sum << endl ; 
} 

他の人が指摘したように、あなたは

sum(i) from i=1 to n = n * (n+1)/2

int main() 
{ 
    int x; 
    int sum = 0; 
    cout << "Please enter a single digit integer: " ; 
    cin >> x ; 
    cout << x * (x + 1)/2 << endl ; 
} 
+0

そのトリックをしました。どうもありがとうございます!私はとてもシンプルなものを逃したとは信じられません。 – Mojo

1

使用ブラケットを述べた数学的ソリューションを使用することができますループ本体を示す。累積

sum += i; // sum = sum + i 

sum = x + iの代わりに、累積します。

for(i = 1 ; i <= x ; i++) { 
    sum = sum + i; // or sum += i 
} 
1
int main() 
{ 
    int x = 0, i = 0; 
    int sum = 0; 
    cout << "Please enter a single digit integer: " ; 
    cin >> x ; 

    for(i = 1 ; i <= x ; i++) 
      sum += i ; 
    cout << sum << endl ; 

} 
関連する問題