nの階乗を求めるプログラムです。
for文の初期値を2にしてはいけない理由を知りたいです。
#include<stdio.h>
int kai(int n) {
int ans = 1;
for (int i = 2;i <= n;i++) {
ans = ans * i;
}
return ans;
}
void main(void)
{
int n, ans;
scanf("%d", & n);
printf("%d", \n);
ans = kai(n);
}
nの階乗を求めるプログラム
Re: nの階乗を求めるプログラム
元のコードはいろいろグダグダだったので書き換えました。
少なくとも下記のコードではfor文の初期値は1でも2でもOKです。
少なくとも下記のコードではfor文の初期値は1でも2でもOKです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: nの階乗を求めるプログラム
もちろん、int型でオーバーフローしない範囲のnにおいては、ということです。少なくとも下記のコードではfor文の初期値は1でも2でもOKです。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: nの階乗を求めるプログラム
学校の先生の教えに反し、試験の時にそうすると不正解とされるから…とかでしょうか?あいうえお さんが書きました: ↑2年前for文の初期値を2にしてはいけない理由を知りたいです。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: nの階乗を求めるプログラム
> for文の初期値を2にしてはいけない理由
「2にしてはいけない」という話がそもそもどこからどうやって湧いてきたのか?
唐突に「2にしてはいけない」ということが決定事項のような話をされても,読み手には意味不明だと思わない?
どう見ても2でOKと見える話に対して「2だとダメな理由は?」とか言われても,
背景事情が不明な第三者からは「とりあえずその話が湧いてきた箇所に問えば…?」としか言えない.
もしもご自身の中に「2でOKだろ常考…」的な考えや確信がある状態で,そのことに対する{共感,賛同}が欲しい的な話なのであれば,
「コレ1じゃなくて2でもいいですよね?」とか「むしろ1より2の方が良いですよね?」とか,そういう形の話をすべきであろう.
「2にしてはいけない」という話がそもそもどこからどうやって湧いてきたのか?
唐突に「2にしてはいけない」ということが決定事項のような話をされても,読み手には意味不明だと思わない?
どう見ても2でOKと見える話に対して「2だとダメな理由は?」とか言われても,
背景事情が不明な第三者からは「とりあえずその話が湧いてきた箇所に問えば…?」としか言えない.
もしもご自身の中に「2でOKだろ常考…」的な考えや確信がある状態で,そのことに対する{共感,賛同}が欲しい的な話なのであれば,
「コレ1じゃなくて2でもいいですよね?」とか「むしろ1より2の方が良いですよね?」とか,そういう形の話をすべきであろう.