- ベストアンサー
代入を含む条件式
自然数を入力して、その数以下の奇数の自然数の和を計算するプログラムを作りたいんです。 入力した自然数までの総合計を求めるプログラムは何とか作ることができたのですが、奇数だけの自然数の和のプログラムはどう作ればいいのでしょうか?おそらくwhileを使うと思うんですけど、よろしくおねがいします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ループを使うなら、 #include <stdio.h> int main(void) { int number, sum_odd = 0, i; printf(" 入力(自然数) -> "); scanf("%d", &number); for(i = 1; i <= number; i += 2) sum_odd += i; printf(" 奇数和 %d", sum_odd); return 0; } ループを使わないなら、 #include <stdio.h> int main(void) { int number, sum_odd; printf(" 入力(自然数) -> "); scanf("%d", &number); sum_odd = (number + number % 2) * ((number + 1) / 2) / 2; printf("\n奇数和 %d", sum_odd); return 0; }
その他の回答 (3)
- Trick--o--
- ベストアンサー率20% (413/2034)
そのプログラムの「加算する」の部分を「奇数だったら加算する」に変えればいいのです。
- edomin
- ベストアンサー率32% (327/1003)
int i_num; // 入力された数字 int i; // カウンタ int goukei = 0 ; // 合計 ・ ・ if(i_num == 1){ goukei = 1; } else { for(i = 1;i<i_num;i=i+2){ goukei = goukei + i; } } こんな感じでしょうか?
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
調べたい数 % 2 == 1 が成立した数が奇数
お礼
ていねいな回答ありがとうございました。 無事できました。