1 solutions
-
0
C :
#include<stdio.h> #include<stdlib.h> #include<string.h> int get_next(int x) { int a, b, n; char s[10]; sprintf(s, "%d", x); n = strlen(s); for(int i = 0; i < n; i++) { for(int j = i+1; j < n; j++) { if(s[i] > s[j]) { char t = s[i]; s[i] = s[j]; s[j] = t; } } } sscanf(s, "%d", &b); for(int i = 0; i < n/2; i++) { char t = s[i]; s[i] = s[n-1-i]; s[n-1-i] = t; } sscanf(s, "%d", &a); return a-b; } int main() { int k; int num[2000]; int count; int counter = 0; int counter_1 = 1; int long_num; int g, s, b, q; int n; //int xishou; //scanf("%d", &xishou); for(k = 1234; k < 9999; k++) { q = k / 1000; b = k / 100 - q*10; if(q != b) { s = k / 10 - b*10 - q*100; if(s != q && s != b) { g = k % 10; if(g != q && g != b && g != s) { num[0] = k; count = 1; for(;;) { num[count] = get_next(num[count-1]); int found = 0; for(int i = 0; i < count; i++) { if(num[i] == num[count]) { found = 1; break; } } if(found) { if(count >= counter) { if(count > counter) { counter = count; long_num = num[0]; break; } counter_1++; } break; } count++; } } } } } //printf("%d\n", counter); printf("%d\n", long_num); printf("%d\n", counter_1); num[0] = long_num; printf("%d", num[0]); count = 1; for(;;) { num[count] = get_next(num[count-1]); printf(" -> %d", num[count]); int found = 0; for(int i = 0; i < count; i++) { if(num[i] == num[count]) { found = 1; break; } } if(found) break; count++; } printf("\n"); return 0; }
- 1
Information
- ID
- 505
- Time
- 1000ms
- Memory
- 2MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By