このディレクトリの索引 http://hibari.2ch.net/test/read.cgi/tech/1320365280/712 # [1] 授業単元: C言語実習 # [2] 問題文(含コード&リンク): # 整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示せよ. # # 例 # 入力:114514 # 出力:11万4514 # 入力:810 # 出力:810 # # '整数値を読み取り,4桁毎に 兆,億,万 を挿入して表示する' :- 整数値を読み取り(_整数値), '4桁毎に 兆,億,万 を挿入して表示する'(['',万,億,兆],_整数値). '4桁毎に 兆,億,万 を挿入して表示する'([_,_,_,_],0) :- writef('%t\n',[0]),!. '4桁毎に 兆,億,万 を挿入して表示する'(_,0) :- !. '4桁毎に 兆,億,万 を挿入して表示する'([_単位|R],N) :- M is N mod 10000, N_1 is N // 10000, '4桁毎に 兆,億,万 を挿入して表示する'(R,N_1), 表示する(_単位,M). 表示する(_,0) :- !. 表示する('',M) :- writef('%t\n',[M]),!. 表示する(_単位,M) :- writef('%t%t',[M,_単位]). 整数値を読み取り(_整数値) :- writef('整数を入力して下さい : '), get_line(Line), 整数値読み取り診断(Line,_整数値),!. 整数値を読み取り(_整数値) :- 整数値を読み取り(_整数値). 整数値を読み取り診断(Line,_整数値) :- atom_to_term(Line,_整数値,_), integer(_整数値),!. 整数値を読み取り診断(Line,_整数値) :- writef('入力された %t からは整数値が得られません。再入力をお願いします。\n',[Line]), fail.