第13回演習課題の解説 1 第13回演習課題(1) 1. 任意の数nを

Download Report

Transcript 第13回演習課題の解説 1 第13回演習課題(1) 1. 任意の数nを

第13回演習課題の解説
1
第13回演習課題(1)
1. 任意の数nをキーボードから入力して、その数nの
階乗n!の桁数を求めるプログラムを作成せよ。そし
て、横軸:n、縦軸:n!の桁数のグラフを書け(nは1
から100とする)。ただし、桁数は近似で良い。

2
第13回演習課題(1)の解答
ans13-1.cc



階乗を普通に計算すると桁あふれを起こすので、対数を取
る
桁数は、底が10の対数を取ると求められる
Int n = 20;
int keta = (int)(log((double)n)/log(10.0)) + 1;
2が出力される
3
第13回演習課題(2)
2. プログラムを作り、次の問いを解け




4
左右どちらから読んでも同じ値になる数を回文数という
2桁の数の積で表される回文数のうち、最大のものは 9009
= 91 × 99 である
では、3桁の数の積で表される回文数の最大値を求めよ
第13回演習課題(2)の解答
ans13-2.cc



任意の整数のk桁目の数字を取り出す関数を定義して、地道
に計算する
bool型
 true(真)とfalse(偽)の二値を取る変数型
 C++で導入された
授業では説明しなかっ
たけれど
5