各桁を取り出すアルゴリズム
- 10で割った余りを求めて保存する
- 任意の数字を10で割り、小数点以下を切り捨てて上書き
- 1と2の手順を任意の数字が0になるまで繰り返す。
こういうアルゴリズムがスッと頭から出てくるほど賢い人間になりたい。
書いたコード全文
/*
* C言語のサンプルプログラム
* - 入力した自然数を各桁に分割 -
*/
#include <stdio.h>
int main()
{
/* 自然数 */
int num;
/* 各桁の数字 */
int dig[100] = {0};
printf("自然数を入力してください = ");
scanf("%d", &num);
/* 自然数の各桁の数字の和を計算 */
int i = 0;
while(num){
dig[i] = num % 10;
num = num / 10;
i++;
}
/* 各桁の数字を出力 */
int j = 0;
while(i > j){
printf("%d桁目 = %d\n", j + 1, dig[j]);
j++;
}
return 0;
}
コメント