![B3866 [GESP202309 二级] 数字黑洞 题解](http://pic.xiahunao.cn/yaotu/B3866 [GESP202309 二级] 数字黑洞 题解)
题目描述给定一个三位数要求各位不能相同。例如352 是符合要求的112 是不符合要求的。将这个三位数的三个数字重新排列得到的最大的数减去得到的最小的数形成一个新的三位数。对这个新的三位数可以重复上述过程。神奇的是最终一定会得到 495试试看重新排列 352得到的最大数为 532最小数为 235它们的差是 297变换 297得到 972−279693变换 693963−369594变换 594954−459495。因此经过 4 次变换得到了 495。现在输入的三位数你能通过编程得出这个三位数经过多少次变换能够得到 495 吗输入格式输入一行包含一个符合要求的三位数 N。输出格式输出一行包含一个整数 C表示经过 C 次变换得到 495。输入输出样例输入 #1复制352输出 #1复制4AC代码#includebits/stdc.h using namespace std; int main(){ int n; cinn; for(int t0;;t){ if(n495){ couttendl; break; } int s1n%10,s2n/10%10,s3n/100; int x0,y0; if(s1s2s2s3){ xs1*100s2*10s3; ys3*100s2*10s1; } else if(s1s3s3s2) { xs1*100s3*10s2; ys2*100s3*10s1; } else if(s2s1s1s3){ xs2*100s1 *10s3; ys3*100s1 *10s2; } else if(s2s3s3s1){ xs2*100s3*10s1; ys1*100s3*10s2; } else if(s3s1s1s2){ xs3*100s1*10s2; ys2*100s1*10s3; } else{ xs3*100s2*10s1; ys1*100s2*10s3; } nx-y; } return 0; }