■
どう書く?
1以上の整数(10桁くらい?)を与えたら その値を漢字で出力する
こういう プログラム 関数 を書く必要が出来た場合どう書くだろうか 言語は問わず
ちなみに自分はC言語で↓な感じ
興味あればトライしてみて下さい
#include
#include
#includeint get_one_digit( int n, int getFigure) {
int i;
for( i = 0; i < getFigure - 1; i++) {
n /= 10;
}
if(n == 0) {
return -1;
}
return n % 10;
}void main( void) {
int n = 12345;
char * num[] = { "", "一", "二", "三", "四", "五", "六", "七", "八", "九",};
char * unit1[] = {
"",
"拾",
"百",
"千",
};
char * unit2[] = {
"",
"万",
"憶",
"兆",
};
int unit2_flag_array[] = {
0,
0,
0,
0,
};
int i;
int disp_n;
int old_i;
int old_disp_n;
char disp_str[256];
memset( disp_str, 0, sizeof( disp_str));
printf( "%d\n\n", n);
i = 1;
disp_n = get_one_digit( n, i);while(disp_n >= 0) {
if(unit2_flag_array[(i - 1) / 4] == 0 && disp_n > 0) {
char temp[256];
strcpy( temp, disp_str);
sprintf( disp_str, "%s%s", unit2[(i - 1) / 4], temp);
unit2_flag_array[(i - 1) / 4] = 1;
}
if(disp_n == 0) {
}
else if(disp_n == 1 && (i - 1) % 4 != 0) {
char temp[256];
strcpy( temp, disp_str);
sprintf( disp_str, "%s%s", unit1[(i - 1) % 4], temp);
}
else {
char temp[256];
strcpy( temp, disp_str);
sprintf( disp_str, "%s%s%s", num[disp_n], unit1[(i - 1) % 4], temp);
}
old_i = i;
old_disp_n = disp_n;
i++;
disp_n = get_one_digit( n, i);
}
puts( disp_str);
}