Sn=1+11+111+1111+……+n个1

若Sn=1+11+111+1111+……+n个1,输入n,想要得到Sn的值,怎么编写程序(C++)

n如果很大的话,只怕用整型浮点型啥的都不够啊。有限定n的范围吗?


int  func(int a,int n);
int main(void)
{
    int su=0;  
    int i,n,a=1;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
          su=su+func(a,i);
    printf ("%d\n",su);
   
    return 0;
}
int func(int a,int n)
{
    int i,k=0; 
    for(i=1;i<=n;i++)
            k=a+k*10;
    return k;
}

这个取决于数据范围,数据范围大的话可能需要高精度

等我找找高精度

用字符串处理