3 条题解

  • 0
    @ 2024-1-7 21:33:55
    #include <iostream>
    #include <algorithm>
    #include <cstring>
    using namespace std;
    int main(){
        int n;
        cin >> n;
        while(true){
            char a[5], a2[5];
            sprintf(a, "%d", n); //将数字转换为字符数组 
            sprintf(a2, "%d", n);
            sort(a, a+strlen(a), less<int>()); //重组最大数
            sort(a2, a2+strlen(a2), greater<int>());//重组最小数
            int m = atoi(a); //将字符串转换为int 
            n = atoi(a2);
            int ans = n - m;//相减结果 
            printf("%d-%d=%d\n", n, m, ans);
            n = ans;
            if(ans == 6174)
                break; //遇到6174时结束循环 
        }
        return 0;
    }
    
    • 0
      @ 2023-4-15 14:17:16
      #include<iostream>
      #include<algorithm>
      using namespace std;
      int n;
      int cz(int n,bool m){
      	int k;
      	int a[]={n/1000,n/100%10,n/10%10,n%10};
      	sort(a,a+4);
      	if(!m)k=a[0]*1000+a[1]*100+a[2]*10+a[3];//如果m为false,返回最小数
      	else k=a[3]*1000+a[2]*100+a[1]*10+a[0];//否则输出最大数
      	return k;
      }
      int main(){
      	cin>>n;
      	while(n!=6174){
      		int a=cz(n,1),b=cz(n,0);
      		cout<<a<<"-"<<b<<"="<<a-b<<endl;
      		n=a-b;
      	}
      	return 0;
      }
      
      • 0
        @ 2022-5-30 18:57:26
        /*****************************************
        备注:
        ******************************************/
        #include <queue>
        #include <math.h>
        #include <stack>
        #include <stdio.h>
        #include <iostream>
        #include <vector>
        #include <iomanip>
        #include <string.h>
        #include <algorithm>
        using namespace std;
        #define LL long long
        const int N = 1e5 + 10;
        const int INF = 0x3f3f3f3f;
        int main()
        {
        	int n ;
        	cin >> n;
        	while(n != 6174)
        	{
        		int a[10];
        		int m = n;
        		memset(a,0,sizeof(a));
        		while(m)
        		{
        			a[m%10]++;
        			m/=10;
        		}
        		int ans =0;
        		for(int i = 9 ; i >=0 ; i--)
        		{
        			for(int j= 0 ;j < a[i] ; j++)
        			{
        				ans = ans *10 + i;
        			}
        		}
        		int sum = 0;
        		for(int i = 0 ; i < 10 ; i++)
        		{
        			for(int j= 0 ;j < a[i] ; j++)
        			{
        				sum = sum *10 + i;
        			}
        		}
        		cout <<ans << "-"<< sum << "=" << ans-sum<<endl;
        		n = ans-sum;
        	}
        	return 0;
        }
        
        • 1

        信息

        ID
        1014
        时间
        1000ms
        内存
        128MiB
        难度
        4
        标签
        递交数
        344
        已通过
        154
        上传者