メモ
カプレカ数
#include
int kap(int n){
int i, j, tmp, max, min, num[4];// 各桁の値を行列に格納
num[0] = n /1000;
n %= 1000;
num[1] = n / 100;
n %= 100;
num[2] = n /10;
n %= 10;
num[3] = n;// 行列を昇順に並べ替える
for(i = 0; i < 3; i++){
for(j = i; j < 4; j++){
if(num[i] < num[j]){
tmp = num[i];
num[i] = num[j];
num[j] = tmp;
}
}
}max = num[0] * 1000 + num[1] * 100 + num [2] * 10 + num[3];
min = num[3] * 1000 + num[2] * 100 + num [1] * 10 + num[0];return max - min;
}int main(void){
int n, i = 0;printf("学籍番号: ");
scanf("%d", &n);// 入力値チェック
if(n < 0 || 9999 < n || (n % 1111 == 0)){
printf("エラーです!\n");
return 0;
}while(n != kap(n)){
n = kap(n);
i++;
}printf("反復回数:%d カプレカ数:%d\n", i + 1, n);
return 0;
}