Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int asc(int num){
- int freq[10] = {0};
- while (num)
- {
- int d = num % 10;
- freq[d]++;
- num = num / 10;
- }
- int result = 0;
- for (int i = 0 ; i <= 9 ; i++)
- {
- if (freq[i])
- {
- result = i;
- freq[i]--;
- break;
- }
- }
- for (int i = 0 ; i <= 9 ; i++)
- while (freq[i]--)
- result = result * 10 + i;
- return result;
- }
- int desc(int num){
- int freq[10] = {0};
- while (num)
- {
- int d = num % 10;
- freq[d]++;
- num = num / 10;
- }
- int result = 0;
- for (int i = 9 ; i <=0 ; i--)
- {
- if (freq[i])
- {
- result = i;
- freq[i]--;
- break;
- }
- }
- for (int i = 9 ; i >=1 ; i--)
- while (freq[i]--)
- result = result * 10 + i;
- return result;
- }
- int main(){
- int n,x;
- cout<<"Input integer: ";
- cin>>n;
- cout<<"Original number was "<<n<<endl;
- while(true){
- int dif = desc(n)-asc(n);
- int dif2= desc(dif)-asc(dif);
- x++;
- if(dif2!=dif)
- dif2=n;
- else
- cout<<"Chain length is: "<<x;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement