محاسبه اعداد بصورت مجموع مضربی از فاکتوریل ها در زبان پاسکال

the_king

مدیرکل انجمن
کد برنامه زیر اعداد موجود در فایل ورودی متنی FACTORIA.IN را خوانده و پس از
محاسبه آنها بصورت مجموع مضربی از فاکتوریل ها در فایل خروجی FACTORIA.OUT می نویسد.
به عنوان مثال عدد 10 را می توان بصورت زیر هم نوشت :
کد:
10 = 0 * 1! + 2 * 2! + 1 * 3!

کد:
program factorial_base;
var
	infile,outfile:text;
	n,k,d:integer;
begin
	assign(infile,'factoria.in');
	reset(infile);
	assign(outfile,'factoria.out');
	rewrite(outfile);
	while not eof(infile) do
	begin
		readln(infile,n);
		write(outfile,n,' = ');
		k:=1;
		repeat
			if k>1 then write(outfile,' + ');				
			d:=n mod (k+1);
			write(outfile,d,' * ',k,'!');
			n:=(n-d) div (k+1);
			k:=k+1;
		until n=0;
		writeln(outfile);
	end;
	close(infile); close(outfile);
end.
 

جدیدترین ارسال ها

بالا