階乗を表示する – プログラミング – Home

通知
すべてクリア

階乗を表示する

固定ページ 1 / 3

ゆうた
 ゆうた
(@ゆうた)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

pow関数を使い入力した数字の階乗を表示を作りたいんです。
画面出力するときにlong型として出力したいのですが、うまくできません。
{
double x, y;

scanf(%lf, &x);

n = pow(x, 2);

printf(%f, (long)n);
}
ではだめなのでしょうか?
おねがいします。(いくらか省いてます)


引用解決済
トピックタグ
マップ
 マップ
(@マップ)
ゲスト
結合: 22年前
投稿: 17
 

double型をlongで表示する
意図はなんでしょう?


返信引用
マップ
 マップ
(@マップ)
ゲスト
結合: 22年前
投稿: 17
 

しかも
>n = pow(x, 2);
じゃ,階乗になってませんよ


返信引用
ゆうた
 ゆうた
(@ゆうた)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

n = pow(x, 2);
はxの2乗になってないんですか?
資料によるとa = pow(x,y);
となっていましたが。


返信引用
マップ
 マップ
(@マップ)
ゲスト
結合: 22年前
投稿: 17
 

>n = pow(x, 2);
>はxの2乗になってないんですか?
こらはたしかに,xの自乗ですが,

>pow関数を使い入力した数字の階乗を表示を作りたいんです。
階乗を表示したいのではなかったのですか?


返信引用
ゆうた
 ゆうた
(@ゆうた)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

たしかに、ではpow(x, x);
にすればOKですか。
それと(%f, (long)n);
なんですがlong型にしたので%fかなと思ったんですが、
%lfですか?


返信引用
マップ
 マップ
(@マップ)
ゲスト
結合: 22年前
投稿: 17
 

>pow関数を使い入力した数字の階乗を表示を作りたいんです。
>たしかに、ではpow(x, x);
>にすればOKですか。

数字の階乗の定義と,
関数pow(x, y)がどのような処理をするのか
考えれるor調べれば,
OKかどうかは,わかると思いますが.
試してみるのが一番だと思います.
#ちなみに答えをいってしますと,OKではありません

>それと(%f, (long)n);
>なんですがlong型にしたので%fかなと思ったんですが、
>%lfですか?
>double x, y;
>scanf(%lf, &x);
>n = pow(x, 2);
>printf(%f, (long)n);

nは何型でしょうか?
(long)nとしてるとこをみると,doubleでしょうか?
・longとはどのような型か
・pow(x, y)の返り血は何型か
・printf()の %による書式
について調べてみてはどうでしょうか?
ちなみに,%lfはdouble型で,%fはfloat型です.


返信引用
ゆうた
 ゆうた
(@ゆうた)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

あっ、はやとちりしてました。
long型は%dですよね。
pow関数はべき乗なんですが、これで階乗を計算することは可能なんですか?


返信引用
マップ
 マップ
(@マップ)
ゲスト
結合: 22年前
投稿: 17
 

>pow関数はべき乗なんですが、これで階乗を計算することは可能なんですか?
可能かどうかときかれらば,可能です.

しかし,階乗とはどういうものか考えれば
もっと素直な解き方があると思いますが...

ゆうたさんのかんがえる”階乗”とは
どのようなものでしょうか?
その”階乗”をもとめるのに,
”べき乗(pow(s, y))”を使うのが
適当かどうかは,わかると思いますが...

一度階乗をどうのようなものと考えているか
かお書きになっては?


返信引用
まゆみ
 まゆみ
(@まゆみ)
ゲスト
結合: 23年前
投稿: 17
 

long hoge(long n)
{
long l;
if (n == 1)
return 1;

l = n * hoge(n - 1);
return l;
}

が素直ではないかと・・・


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

答え書いたら勉強にならんって^^;

で、もっと縮めれば:

unsigned long factorial(unsigned long n) {
return n ? n * factorial(n-1) : 1;
}

かな。


返信引用
まゆみ
 まゆみ
(@まゆみ)
ゲスト
結合: 23年前
投稿: 17
 

>答え書いたら勉強にならんって^^;
ごめんなさい。今後気をつけます。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

>答え書いたら勉強にならんって^^;

 その人しだいかな?
 それで単にコピペして終わるようならそれまでの人だし。
 なんでそうなるのかを考えるか、自主性による。
 小出しにしてもらわないと勉強にならないようでは、勉強してるのではなくて、
勉強させられてるのかも???


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

>>答え書いたら勉強にならんって^^;
> その人しだいかな?
> それで単にコピペして終わるようならそれまでの人だし。

単にコピペして終わるようなそれまでの人に答え教えちゃうのはヤです。
そうでない人なら答えそのものを呈示する必要はないわけだし。

ならどっちみち書かないほうがよかろうと。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

>そうでない人なら答えそのものを呈示する必要はないわけだし。

 そうでない人は、その答えを得ることによって、自分がその答えを出せるようになるまで、
「自分で」反芻学習が可能になるという利点がある。
 であれば、時間が有効利用できるので必要がないわけではない。

>単にコピペして終わるようなそれまでの人に答え教えちゃうのはヤです。

 いろいろな意味で嫌な場合もあるが、どれほど「やる気」があるのか見たい時もある。(^_^;

 まあ、何事も相手に合わせてというとこなんだろうけど、、、
 今回はちょっと合わなかったかもしれない。


返信引用
固定ページ 1 / 3

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました