第11课。
This commit is contained in:
53
11/Optional01.c
Normal file
53
11/Optional01.c
Normal file
@@ -0,0 +1,53 @@
|
||||
#include <stdio.h>
|
||||
|
||||
void calcNext(int lastResult) {
|
||||
if (lastResult == 6174)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
int digits[10] = {0};
|
||||
int maxComb, minComb;
|
||||
int nowChecking;
|
||||
int curDigit = 0;
|
||||
int i = 0, j = 0;
|
||||
scanf("%d", &nowChecking);
|
||||
while (nowChecking > 0) {
|
||||
curDigit = nowChecking % 10;
|
||||
if (digits[curDigit] > 0) {
|
||||
printf("error");
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
digits[curDigit] = 1;
|
||||
nowChecking /= 10;
|
||||
}
|
||||
}
|
||||
while (nowChecking != 6174) {
|
||||
maxComb = 0;
|
||||
minComb = 0;
|
||||
for (i = 0; i < 10; i++) {
|
||||
for (j = 0; j < digits[i]; j++) {
|
||||
minComb = minComb * 10 + i;
|
||||
}
|
||||
}
|
||||
for (i = 9; i >= 0; i--) {
|
||||
for (j = 0; j < digits[i]; j++) {
|
||||
maxComb = maxComb * 10 + i;
|
||||
}
|
||||
}
|
||||
nowChecking = maxComb - minComb;
|
||||
printf("%d - %d = %d\n", maxComb, minComb, nowChecking);
|
||||
for (i = 0; i < 10; i++) {
|
||||
digits[i] = 0;
|
||||
}
|
||||
while (nowChecking > 0) {
|
||||
digits[nowChecking % 10]++;
|
||||
nowChecking /= 10;
|
||||
}
|
||||
nowChecking = maxComb - minComb;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user