タイトルのような問題ですが、指定があり、while文を用いて記述せよとのことです。
例.第25項から第34項までの和の計算(X=25,Y=34)は
25+26+…+34=295
などです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答8件
0
これは大喜利ですか?
c
1#include <stdio.h> 2 3int main() { 4 int X = 25; 5 int Y = 34; 6 7 while(0); 8 printf("%d", (X + Y) * (Y - X + 1) / 2); 9 return 0; 10}
投稿2019/12/06 23:48
総合スコア999
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/07 00:03
2019/12/07 23:55
2019/12/10 11:34
2019/12/13 14:59
0
C
1int main() 2{ 3 int x, y; 4 while(scanf("%d %d", &x, &y)==2){ 5 printf("%d\n", (x+y)*(y-x+1)/2); 6 } 7}
Ctrl+Cで終了します。
投稿2019/12/06 23:49
編集2019/12/07 02:59総合スコア1722
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こんな感じでどうでしょうか!?
while文を使って、書いています。
C#あまり書いたことないので、構文間違ってたら、すいません。
ロジックはいいと思います。
C#
1 2int total; 3total = Sum(25,34) ; //第25項目から34項目までの総和 4 5//第X項目から第Y項目までの総和を計算する関数 6private int Sum(integer X, integer Y){ 7 int sum = 0; 8 while(true){ 9 sum += X; 10 If(X=Y){ 11 break; 12 } 13 X += 1; 14 } 15 return sum; 16} 17
以上です。
投稿2019/12/06 18:25
総合スコア640
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/10 11:24
2019/12/10 14:26
2019/12/10 15:18
0
c
1#include <stdio.h> 2 3int summation(const int start, const int end) { 4 int sum = 0; 5 int i = start; 6 while(i <= end) { 7 sum += i++; 8 } 9 return sum; 10} 11 12int main(void) { 13 printf("sum(%d, %d) = %d\n", 25, 34, summation(25, 34)); 14 for (int i = 1; i <= 10; i++) { 15 printf("sum(%d, %d) = %d\n", 1, i, summation(1, i)); 16 } 17 return 0; 18}
投稿2019/12/08 12:31
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
問題に忠実な回答を試みた。
C
1#include <stdio.h> 2 3/* 数列A[]の第X項から第Y項までの和 */ 4int range_sum(int A[], int X, int Y) { 5 int result = 0; 6 while ( X <= Y ) { 7 result += A[X]; 8 ++X; 9 } 10 return result; 11} 12 13int main() { 14 int A[100]; 15 16 /* 数列 0, 1, 2, ... を用意する(第0項は使わない) */ 17 int i; 18 for ( i = 0; i < 100; ++i ) { 19 A[i] = i; 20 } 21 22 /* 第25項から第34項までの和 */ 23 printf("%d\n", range_sum(A, 25, 34)); 24 return 0; 25}
投稿2019/12/08 00:05
総合スコア16612
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
A(1)=1, A(2)=2, A(3)=3,
A(25)=25, A(26)=26, A(34)=34
A(25)からA(34)の合計が295になる数列のA(X)からA(Y)までの和ですね
C
1#include <stdio.h> 2#include <stdint.h> 3#include <inttypes.h> 4 5 6uint64_t sumAn(int first, int last){ 7 uint64_t x = 9395617169022084000ul; 8 uint64_t d = 1; 9 10 11 uint64_t sum = 0; 12 13 for(int i = 0; i < last; i++){ 14 15 while(x % d != 0){ 16 d++; 17 if(d > x) 18 return sum; 19 } 20 21 //printf("%d, %"PRIu64"\n",i+1, d); 22 23 if(i+1 >= first){ 24 sum += d; 25 } 26 d++; 27 } 28 return sum; 29} 30 31uint64_t An(int n){ 32 return sumAn(n, n); 33} 34 35int main(void){ 36 printf(" %"PRIu64"\n",An(1)); // 1 37 printf(" %"PRIu64"\n",An(2)); // 2 38 printf(" %"PRIu64"\n",An(3)); // 3 39 printf(" %"PRIu64"\n",An(25)); // 25 40 printf(" %"PRIu64"\n",An(26)); // 26 41 printf(" %"PRIu64"\n",An(34)); // 34 42 printf(" %"PRIu64"\n",sumAn(25,34)); // 295 43 44} 45
投稿2019/12/11 00:56
総合スコア13551
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
素朴に考えると1からYまでの和から1からXまでの和を引いてあげるといいと思います。
c
1#include <stdio.h> 2 3int main(void) 4{ 5 int X = 25; 6 int Y = 34; 7 int sum = 0; 8 int i; 9 do { 10 for ( i = 1; i <= Y; i++ ) { 11 sum += i; 12 } 13 for ( i = 1; i < X; i++ ) { 14 sum -= i; 15 } 16 } while(0); 17 18 printf("sum = %d\n", sum); 19 return 0; 20}
投稿2019/12/07 18:19
総合スコア1448
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。