5 条题解

  • 1
    @ 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
      @ 2024-6-16 9:19:06

      #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <stack> #include <queue> #include <map> #include <cstring> #include <iomanip> 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]; 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
        @ 2024-6-16 9:18:12
        #include<bits/stdc++.h>
        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];
        	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
          @ 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
            @ 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
            难度
            2
            标签
            递交数
            103
            已通过
            64
            上传者