準・究極の選択

次の計算をするプログラムを作成せよ。
・S=1+(1+2)+(1+2+3)+(1+2+3+4)+…+(1+2+3…+10)

ヒントを教えてください、宜しくお願いします。

A 回答 (6件)

こんばんは



もう、回答が出ているので、他の例も挙げます。
まずは、forループ1個のものです。

#include <stdio.h>

main()
{
  int s,i ;

  s = 0 ;
  for (i=1 ;i<=10 ;i++){
    s = 2*s+i ;
  }
  printf("S=%d\n",s);
}

次のプログラムは計算式を表示させながら計算させてみます。

#include <stdio.h>

main()
{
  int s,i,j ;

  s = 1 ;
  printf("S=1");
  for (i=2 ;i<=10 ;i++){
    printf("+(");
    for (j=1 ;j<i ;j++){
      s += j ;
      printf("%d+",j);
    }
    s += j ;
    printf("%d)",j);
  }
  printf("\n =%s\n",s);
}

当方で確認して居ませんので、コンパイラをお持ちであれば、試して見てください。
    • good
    • 0

既に同じ回答があります。


4は無かったことにしてください。
(読んでなかったので分からなかった。)
    • good
    • 0

inti,j,k,l;


と定義して
for(k=0,i=1;i<=10;i++)for(j=1;j<=i;j++)k+=j;
を実行すればよい。
答えはkに。
    • good
    • 0

どこがわからないのか、わからないので、「ヒント」ではなく、「解答」になってしまいますが、



[ C / C++ ]

#include <stdio.h>

int main()
{
int i, j, sum = 0;

for (i = 1; i <= 10; i++) {
for (j = 1; j <= i; j++) {
sum += j;
}
}

printf("合計 = %d\n", sum);

return 0;
}



[ Visual Basic ]

Option Explicit

Public Sub Main()
Dim i As Long
Dim j As Long
Dim sum As Long

sum = 0

For i = 1 To 10
For j = 1 To i
sum = sum + j
Next j
Next i

MsgBox "合計 = " & CStr(sum), vbInformation, "計算結果"
End Sub

数学の知識(数列の公式等)は特になくても、正面から愚直に計算すれば解けます。
    • good
    • 0

for文を2つ使います。

(2重ループ)

for(i=1~10)
for(j=1~i)
    • good
    • 0

まず最初にS=0



以下をfor文で繰り返す
一回目 
S←S+(1)
二回目
S←S+(1+2)
三回目
S←S+(1+2+3)




等差数列の和 = (n(初項+末項))/2
(1+2+3+4+5+6+7+8+9+10) = (10(1+10))/2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!