3 solutions
-
0
极其暴力的算法
#include<bits/stdc++.h> using namespace std; int max(int x){ int a=x%10; x/=10; int b=x%10; x/=10; int c=x%10; int m,mi,l; if(a>b&&a>c) m=a; else if(a>b||a>c) mi=a; else l=a; if(b>a&&b>c) m=b; else if(b>a||b>c) mi=b; else l=b; if(c>a&&c>b) m=c; else if(c>b||c>a) mi=c; else l=c; return m*100+mi*10+l; } int min(int x){ int a=x%10; x/=10; int b=x%10; x/=10; int c=x%10; int m,mi,l; if(a>b&&a>c) m=a; else if(a>b||a>c) mi=a; else l=a; if(b>a&&b>c) m=b; else if(b>a||b>c) mi=b; else l=b; if(c>a&&c>b) m=c; else if(c>b||c>a) mi=c; else l=c; return l*100+mi*10+m; } int main(){ int ab,cnt=0; cin>>ab; while(ab!=495){ cnt++; ab=max(ab)-min(ab); } cout<<cnt; } -
0
#include<bits/stdc++.h> using namespace std; int min_int(int a) { int c[3]; c[0]=a/100%10; c[1]=a/10%10; c[2]=a%10; sort(c,c+3); return c[0]*100+c[1]*10+c[2]; } int max_int(int a) { int c[3]; c[0]=a/100%10; c[1]=a/10%10; c[2]=a%10; sort(c,c+3); return c[2]*100+c[1]*10+c[0]; } int main() { int a=0; int b; cin>>b; while(1) { if(b==495)break; b=max_int(b)-min_int(b); a++; } cout<<a; } -
-2
C++ :
#include <iostream> using namespace std; int main() { int n = 0; cin >> n; for (int t = 0; ; t++) { if (n == 495) { cout << t << endl; break; } int m0 = n % 10, m1 = n / 10 % 10, m2 = n / 100; int tmax = 0, tmin = 0; if (m0 >= m1 && m1 >= m2) { tmax = m0 * 100 + m1 * 10 + m2; tmin = m2 * 100 + m1 * 10 + m0; } else if (m0 >= m2 && m2 >= m1) { tmax = m0 * 100 + m2 * 10 + m1; tmin = m1 * 100 + m2 * 10 + m0; } else if (m1 >= m0 && m0 >= m2) { tmax = m1 * 100 + m0 * 10 + m2; tmin = m2 * 100 + m0 * 10 + m1; } else if (m1 >= m2 && m2 >= m0) { tmax = m1 * 100 + m2 * 10 + m0; tmin = m0 * 100 + m2 * 10 + m1; } else if (m2 >= m0 && m0 >= m1) { tmax = m2 * 100 + m0 * 10 + m1; tmin = m1 * 100 + m0 * 10 + m2; } else { // m2 >= m1 && m1 >= m0 tmax = m2 * 100 + m1 * 10 + m0; tmin = m0 * 100 + m1 * 10 + m2; } n = tmax - tmin; } return 0; }
- 1
Information
- ID
- 41
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 4
- Tags
- # Submissions
- 27
- Accepted
- 15
- Uploaded By