• Problem 1183


     1 #include<iostream>
     2 #include<vector>
     3 #include<algorithm>
     4 using namespace std;
     5 
     6 int cnk(int n, int k)
     7 {
     8     int a,b;
     9     a=b=1;
    10     for(int i=0; i<k; i++)
    11     {
    12         a *= n--;
    13         b *= (i+1);
    14     }
    15 
    16     return a/b;
    17 }
    18 
    19 int arrange_calculate(int *a)
    20 {
    21     int n=0;
    22     int ans=1;
    23     for(int i=1; i<10; i++)
    24         n += a[i];
    25 
    26     for(int i=1; i<10; i++)
    27         if(a[i]>0)
    28         {
    29             ans *= cnk(n, a[i]);
    30             n -= a[i];
    31         }
    32     return ans;
    33 }
    34 
    35 int main()
    36 {
    37     int T,N;
    38     cin>>T;
    39     for(int i=0; i<T; i++)
    40     {
    41         cin>>N;
    42         int a[10]={0};  //记录N中1-9出现的次数
    43         int total=0;    //记录N的各个位上的数之和
    44         int count=0;    //保存N有多少位,1表示个位,2表示十位,3表示百位,以此类推
    45         while(N)
    46         {
    47             int temp = N%10;
    48             total += temp;
    49             a[temp]++;
    50             N /=10;
    51             count++;
    52         }
    53         int arrangeNum = arrange_calculate(a);
    54 
    55         int s=0;
    56         for(int j=0; j<count; j++)
    57         {
    58             s += total;
    59             total *= 10;
    60         }
    61 
    62         int ans;
    63         if(arrangeNum<count)  //此时输入的N一定是22222这种各个位上的数都相同的这种类型的数
    64             ans = s/count;
    65         else
    66             ans = (int)(s * (arrangeNum*1.0/count)); //arrangeNum不一定是count的整数倍,比如2233对应的count=4,arrangeNum=6
    67 
    68         cout<<ans<<endl;
    69 
    70 
    71     }
    72     return 0;
    73 }
  • 相关阅读:
    centos6.8安装JDK1.8
    尚硅谷 ActiveMQ
    Spring 注解版-事务实现
    nginx实现动静分离
    C/C++ 位域
    大小端模式
    C++find函数
    C++ transform
    C++ string的大小写转换
    C++ pair用法
  • 原文地址:https://www.cnblogs.com/Marrybe/p/3823684.html
Copyright © 2020-2023  润新知