3 solutions

  • 1
    @ 2023-7-26 10:43:14
    /*
    思路:首先定义一个数组Number,用于存储每个数字有多少个。
    一个函数x,用于判断还有剩余数字吗。
    注意恰好用完是0,是满足条件的。只有为负数的时候才是不够用的。
    for循环遍历每个凑成的数字i,while中用%和/的方式让i的每一位数字-1,
    发现Number数组中数字不够用则输出上一个i(因为当前i凑不出)。
    */
    #include<bits/stdc++.h>
    using namespace std;
    int number[10];
    bool x() {
    	for (int i = 1; i <= 9; i++) {
    		if (number[i] < 0)
    			return false;	
    	}
    	return true;
    }
    
    
    int main(){
    	int j;
    	for (int i = 0; i <= 9; i++)
    		number[i] = 2021; 
    	for (int i = 1; x(); i++){
    		j=i;
    		while(j>0){
    			number[j%10]--;
    			j/=10;
    			if(!x()){
    				cout<<i-1;
    				break;
    			}
    		}
    	}
    	return 0;
    }
    
    • 0
      @ 2022-4-1 22:49:36
      #include<iostream>
      using namespace std;
      int a[10];
      bool find(int n){
      	while(n){//因为不确定n是多少位只能一位一位的拆分 
      		int N = n%10;//一位一位的拆分拆成0到9十个数 
      		n /= 10;//剩下的数重新赋值 
      		--a[N];
      		if(a[N]<0)
      		return false;
      	}
      	return true; 
      }
      int main(){
      	int num = 0;
      	for(int i=0; i<10; i++){//给0到9十张卡片赋值 
      		a[i] = 2021;
      	}
      	for(int i=1;find(i);i++)//因为从1开始拼凑则直接从1开始遍历
      	    num++;
      	printf("%d\n",num);
      }
      
      • 0
        @ 2022-3-31 21:30:16

        #include<bits/stdc++.h>

        using namespace std;

        int a[10];

        bool check(int x,int *a){

        while(x){
        
           if(a[x%10]<=0)return false;//如果当前数字卡片用完了,直接返回失败
        
           a[x%10]--;//如果当前的卡片没用完,则使用一张并减减
        
           x/=10;
        }
        
        return true;//顺利拼完
        

        }

        int main(){

        for(int i=0;i<10;i++) a[i]=2021;

        for(int i=1;;i++)//只要这个数可以拼出来,就继续拼

          if(!check(i,a)){
        
        
              cout<<i-1;//因为i这个数是false状态也就是说拼不出来,所以输出i-1
              break;
          }
        

        return 0;
        }

        • 1

        Information

        ID
        1557
        Time
        1000ms
        Memory
        256MiB
        Difficulty
        3
        Tags
        # Submissions
        152
        Accepted
        79
        Uploaded By