1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; long long len; char k[20000]; char d[20000]; char x[20000]; long long r[20000]; long long t=1,z; char ddx(char b[]) { sort(b,b+len,greater<char>()); } char xdd(char b[]) { sort(b,b+len,less<char>()); } bool cx(long long q) { for(long long i=1;i<=z-1;i++) if(r[i]==q) return 1; return 0; } int main() { //freopen(""kblk.in"",""r"",stdin); //freopen(""kblk.out"",""w"",stdout); long long t=-1; while(scanf("%s",&k)!=EOF)//对于不知道多少组输入数据的解决办法 { z=1;//下标注意要清0; sscanf(k,"%lld",&t); memset(r,0,sizeof(r));//对于每一个数,r数组别忘了清0; r[z]=t;//要加上本身这个数字,坑这了 ;循环节有可能从他本身就是。 while(cx(t)==0) { if(strlen(k)==4) { printf("%s\n","6174"); continue; } else len=strlen(k); ddx(k); strcpy(d,k); xdd(k); strcpy(x,k); long long ds,xs; sscanf(d,"%lld",&ds); sscanf(x,"%lld",&xs); t=ds-xs; r[++z]=t; sprintf(k,"%lld",t); } for(long long i=1;i<=z;i++) { if(r[i]==t) { for(long long j=i;j<=z-2;j++) cout<<r[j]<<' '; cout<<r[z-1]; //题库最后的空格是不忽略的 cout<<endl; break; } } continue; } }
- 1
信息
- ID
- 2633
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者