1 条题解

  • 0
    @ 2025-1-22 10:25:54
    #include<bits/stdc++.h>
    #define r(a) scanf("%d",&a)
    #define rll(a) scanf("%lld",&a)
    #define f(i,l,r) for(int i=l;i<=r;i++)
    #define F(i,r,l) for(int i=r;i>=l;i--)
    #define fx(i,l,r) for(int i=l;i<r;i++)
    #define fd(i,r,l) for(int i=r;i>l;i--)
    #define ll long long
    #define p(a) printf("%d",a)
    #define kong putchar(' ')
    #define pll(a) printf("%lld",a)
    #define huanhang putchar('\n')
    using namespace std;
    int n,f[10005],last[10005],cnt;
    void slove(int j){
    	for(int i=1;i<=cnt;i++){
    		last[i]*=9;
    	}
    	last[j]++;cnt=max(cnt,j);
    	for(int i=1;i<cnt;i++){
    		if(last[i]>9){
    			last[i+1]+=last[i]/10;
    			last[i]%=10;
    		}
    	}
    	if(last[cnt]>9){
    		last[cnt+1]+=last[cnt]/10;
    		last[cnt]%=10;cnt++;
    	}
    	for(int i=1;i<=cnt;i++){
    		f[i]=last[i];
    	}
    	return;
    }
    int main(){
    	r(n);last[1]=1;f[1]=1;cnt=1;
    	for(int i=2;i<=n;i++){
    		slove(i);
    	}
    	for(int i=cnt;i>=1;i--){
    		printf("%d",f[i]);
    	}
    	return 0;
    }//f[i]=f[i-1]*9+10^(i-1)
    
    • 1

    信息

    ID
    253
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    228
    已通过
    76
    上传者