6 条题解

  • 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-10-18 18:01:33

      #include <iostream> #include <algorithm> #include <cstring> using namespace std;

      int n,a[6],b[6];

      bool cmp(int x,int y) { return x > y; }

      int main() { cin >> n; while(n != 6174) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); int num = n,sum = 0; n = 0; for(int i = 1;num != 0;i++) { a[i] = num%10; b[i] = num%10; num /= 10; } sort(a+1,a+5,cmp); sort(b+1,b+5); for (int i = 1;i <= 4;i++) { n = n10+a[i]; sum = sum10+b[i]; } cout << n << "-" << sum << "=" << n-sum << endl; n = n-sum; } 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
              难度
              4
              标签
              递交数
              252
              已通过
              115
              上传者