题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805302786899968

思路理清以后就很简单了,主要一开始各部分的功能顺序没有想好,这题应该是必须要用数组的把

代码

  1. #include<algorithm>
  2. #include<vector>
  3. #include<iostream>
  4. using namespace std;
  5. int convert(int &num){
  6. vector<int> list(4);
  7. for(int i = 0; i < 4; i++){
  8. list[i] = num % 10;
  9. num /= 10;
  10. }
  11. sort(list.begin(),list.end());
  12. int temp = list[0]*1000 + list[1]*100 + list[2]*10 + list[3];
  13. num = list[3]*1000 + list[2]*100 + list[1]*10 + list[0];
  14. return temp;
  15. }
  16. int main(){
  17. int n1, n2, result = -1;
  18. scanf("%d",&n1);
  19. while(result != 0&&result!=6174){
  20. n2 = convert(n1);
  21. result = n1 - n2;
  22. printf("%04d - %04d = %04d\n", n1, n2, result);
  23. n1 = result;
  24. }
  25. }