6174问题

来源:互联网 发布:elementary linux 编辑:程序博客网 时间:2024/05/20 19:29
#include <iostream>using namespace std;void SelectionSort(char *str,int len);void StrReverse(char *str,int len);int GetNext(int num);int main(){int num[20000],count=1;cin>>num[0];cout<<num[0];while(1){num[count]=GetNext(num[count-1]);cout<<" -> "<<num[count];int flag=1;for(int i=0;i<count;i++){if(num[i]==num[count]){flag=0;break;}}if(!flag){break;}count++;}return 0;}void SelectionSort(char *str,int len){int k=0;int temp;for(int i=0;i<len-1;i++){k=i;for(int j=i+1;j<len;j++){if(str[k]>str[j]){k=j;}}if(i!=k){temp=str[k];str[k]=str[i];str[i]=temp;}}}void StrReverse(char *str,int len){char temp;for(int i=0;i<len/2;i++){temp=str[i];str[i]=str[len-i-1];str[len-i-1]=temp;}}int GetNext(int num){int a,b,len;char str[100];sprintf(str,"%d",num);len=strlen(str);SelectionSort(str,len);sscanf(str,"%d",&b);StrReverse(str,len);sscanf(str,"%d",&a);return a-b;}

原创粉丝点击