- ベストアンサー
階乗の式
「5」と入力すると、「1*2*3*4*5=120」(階乗)と表示されるプログラムを組みたいのですが、 例で言うと120という計算結果は出せるのですが式の部分が出せません。 forまたはwhileによって作るんですが誰か式をうまく出すプログラムが分かる人いらっしゃいませんか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
import java.io.*; public class kaijyou { public static void main(String[] args){ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); System.out.print("数字を入力=> "); int x = Integer.parseInt(in.readLine()); int y=1; System.out.print("結果は "); for(int i=1;i<x;i++){ System.out.print(i+"*"); y=i*y; } System.out.print(x+"=" +y*x ); } }
その他の回答 (2)
- 米沢 栄蔵(@YON56)
- ベストアンサー率36% (37/102)
セルA1に計算対象値を入力し、セルB1に計算結果を表示するものとすると、 エクセルの関数式の場合 セルB1に[=IF(A1>0,FACT(A1),"")]と記述する。 エクセルのマクロの場合 Dim A,B,C A=RANGE("A1").VALUE IF A>0 THEN B=1 FOR C=1 TO A B=B*C NEXT C END IF RANGE("B1")=B これでいかがでしょうか
- luckymako
- ベストアンサー率55% (29/52)
これでどうですか? public StringBuffer func(int a){ if(a > 0){ StringBuffer f = new StringBuffer("1"); long ans = 1; int tmp = 1; while(++tmp <= a){ f.append("*").append(tmp); ans *= tmp; } f.append("=").append(ans); return f; } return null; }
お礼
今やってるタイプとおなじ形です! ありがとうございました。