求数列的和 怎么来求的

Problem Description
数列的定义如下:
数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。

Input
输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。

Output
对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。

Sample Input
81 4
2 2

Sample Output
94.73
3.41

是用C语言写吗还是用其他语言

#include<bits/stdc++.h>
void GetArray(float num[], int n, int m)
{
    int i = 1;
    m= m-1;
    num[0] = n*1.0;
    while(m--)
    {
        num[i] = sqrt(num[i-1]);
        i++;
    }
}

int main()
{
    int n, m;
    float num[1000], sum[1000];
    while(scanf("%d %d", &n, &m)!=EOF)
    {
        GetArray(num, n, m);
        float s = 0;
        for(int i = 0; i < m; i++)
            s += num[i];
        printf("%.2f", s);

    }


    return 0;
}