1 条题解
-
0
自动搬运
来自洛谷,原作者为

lukezang
蒟蒻搬运于
2025-08-24 23:10:32,当前版本为作者最后更新于2025-03-02 17:58:01,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这个题目难度并不高,所以我蓝名写题解应该没有问题吧。
本题基本思路就是循环题目描述中的步骤并判断是否重复,与之前重复就输出。
那就上代码吧。
#include<bits/stdc++.h> using namespace std; int a[105],g[10005]; int main() { long long n,b,cl,d,e,f,jc,bc; string c; cin>>n>>cl; for(int i=1;i<=n;i++) { cin>>c; jc=c.size();//注意可能有前导零被删的数 f=0; g[0]=0; for(int j=0;j<jc;j++) { a[j]=c[j]-'0'; g[0]+=a[j]*pow(10,jc-j-1); } if(jc!=cl) { for(int j=jc;j<=cl;j++) { a[j]=0; } } for(int k=1;k<=10000;k++) { if(f==1) break; sort(a,a+cl); d=0; e=0; for(int j=0;j<cl;j++) { d+=a[j]*pow(10,j);//由大至小排列 e+=a[j]*pow(10,cl-j-1);//由小至大排列 } g[k]=d-e; for(int j=0;j<cl;j++) { a[j]=g[k]/pow(10,j); a[j]=a[j]%10; } for(int j=0;j<k;j++) { if(g[k]==g[j]) { f=1; cout<<g[k]<<endl; break; } } } } return 0; }
- 1
信息
- ID
- 11602
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者