算法入门经典P57-习题3-3(递推)
#include<iostream> #include<cstring> #include<cmath> using namespace std; int c[10005][10],data[10],tmp_data[10]; int main(){ memset(c,0,sizeof(c)); for(int i=0;i<=9;i++){ c[1][i] = 0; } c[1][1] = 1; for(int i=2;i<=10000;i++){ int tmp = i; memset(tmp_data,0,sizeof(tmp_data)); while(tmp>0){ tmp_data[tmp%10]++; tmp /= 10; } for(int j=0;j<=9;j++){ c[i][j] = c[i-1][j] + tmp_data[j]; } } int n; scanf("%d",&n); for(int i=0;i<=9;i++){ printf("%d ",c[n][i]); } printf("\n"); return 0; }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号