#include
#include
#define N 4
int GetMax( int a[]);
int GetMin( int a[]);
int check(int n);
int idigit(int n,int a[]);
void is_kabulek(int *n);
int GetNum();
int main() {
int n;
n=GetNum();
is_kabulek(&n);
return 0;
}
int GetMax( int a[]){
int i,result=0;
for (i = 0; i < N; i++) {
result+=a[i]*pow(10,N-i-1);
}
return result;
}
int GetMin( int a[]){
int i,result=0;
for (i = 0; i < N; i++) {
result+=a[i]*pow(10,i);
}
return result;
}
int check(int n){
int arr[N],count=0;
for(int i=0;i
arr[i]=n%10;
n/=10;
}
for(int i=0;i
for(int j=i+1;j
if(arr[i]==arr[j]){
count++;
}
}
}
if(count>3){
return 0;
}
return 1;
}
int idigit(int n,int a[]){
int i,j,t;
for(i=0;i
a[i]=n%10;
n/=10;
}
for(i=0;i
for(j=i+1;j
if(a[i]
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
return 0;
}
void is_kabulek(int *n){
int a[N];
idigit(*n,a);
while(*n!=6174&&*n) {
printf("%4d - %4d = %4d\n",GetMax(a),GetMin(a),GetMax(a)-GetMin(a));
*n = GetMax( a) - GetMin( a);
idigit(*n,a);
}
}
int GetNum() {
int n;
printf("input a four-digit number that is not the same as each digit\n");
while (1) {
scanf("%d", &n);
if (n > 999 && n < 10000 && check(n)) {
break;
} else {
printf("illegal input,try again\n");
fflush(stdin);
}
}
return n;
}
#include
#include
const int N=4;
int GetMax( int n);
int GetMin( int n);
int check(int);
int idigit(int n,int a[N]);
int main() {
int n;
printf("input a four-digit number that is not the same as each digit\n");
while (1){
scanf("%d",&n);
if(n>999&&n<10000&&check(n)){
break;
}else{
printf("illegal input,try again\n");
fflush(stdin);
}
}
while(n!=6174&&n) {
printf("%4d - %4d = %4d\n",GetMax(n),GetMin(n),GetMax(n)-GetMin(n));
n = GetMax(n) - GetMin(n);
}
return 0;
}
int GetMax( int n){
int a[N],i,result=0;
idigit(n,a);
for (i = 0; i < N; i++) {
result+=a[i]*pow(10,N-i-1);
}
return result;
}
int GetMin( int n){
int a[N],i,j,t,result=0;
idigit(n,a);
for (i = 0; i < N; i++) {
result+=a[i]*pow(10,i);
}
return result;
}
int check(int n){
int arr[N],count=0;
for(int i=0;i
arr[i]=n%10;
n/=10;
}
for(int i=0;i
for(int j=i+1;j
if(arr[i]==arr[j]){
count++;
}
}
}
if(count>3){
return 0;
}
return 1;
}
int idigit(int n,int a[N]){
int i,j,t;
for(i=0;i
a[i]=n%10;
n/=10;
}
for(i=0;i
for(j=i+1;j
if(a[i]