合成31501
#include <iostream>
using namespace std;
int fun(int b[], int n)
{
int k=0,s=0;
for (int i = 0; i < n; i++)//判断和数的位数
{
if (b[i]>=0&&b[i] <= 9)
{
k++;
}
if (b[i] > 9&&b[i]<20)
{
int p = 0;
int r = b[i];
while (r)//判断b[i]的位数
{
r /= 10;
p++;
}
k = k + p;
}
}
int j = 0;
do
{
int q=1;
if (b[j] < 9)
{
for (int i = 0; i < k - 1; i++)
{
q = q * 10;
}
s += b[j] * q;
q--;
}
if (b[j] > 9 && b[j] < 20)
{
k--;
for (int i = 0; i < k - 1; i++)
{
q = q * 10;
}
s += b[j] * q;
k--;
}
j++;
} while (j != n - 1);
return s;
}
int main()
{
int a[4] = { 3,15,0,1 };//31501
cout<<fun(a, 4);
return 0;
}