今日でた宿題は「100の階乗までを表示できる計算機をintの行列で表せ」というもので、
intの行列 kazu[MAX] にひとけたずつ数を入力し、大きな桁を表示できるようにするというものなのですが、
現状、
#include <stdio.h>
#define MAX 200
void main(void)
{
int kazu[MAX];
int i,j,k,x,y;
/*数値を0に固定*/
for (i = 0;i < MAX;i++){
kazu = 0;
}
kazu[0] = 1;
printf("階乗を入力する\n");
scanf("%d",&x);
for (i = 1;i < x + 1;i++){
/*その回の階乗分をかける*/
for (j = 0;j < MAX;j++){
kazu[j] = kazu[j]*i;
}
/*繰り上げ処理*/
for (j = 0;j < MAX;j++){
if (kazu[j] > 9){
kazu[j+1] = kazu[j+1] + kazu[j]/10;
kazu[j] = kazu[j]%10;
}
}
}
printf("%d の階乗は ",x);
for (i = y;i > 0;i--){
printf("%d",kazu);
}
printf(" です。");
}といったところまで作ったのですが、桁数を求める方法が分からないので、答えにたどりつけません。
桁数を求められれば答えにたどりつけると思うのですが……
皆さん、お力をお貸しください。