PTA:7-22 求序列平方和

作者 李祥

单位 湖北经济学院

请编写程序,输入正整数 n,计算平方和 s=12+22+32+⋯+n2。

输入格式

整数 n

注:n 在 int 类型范围内,格式限定符采用 %d。

输出格式

实数 s

注:s 在 double 类型范围内,格式限定符采用 %.15g。

输入样例
100

输出样例
338350

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<stdio.h>
int main()
{
    int n;
    double s;
    double i;
    scanf("%d",&n);
    i=(double)n;
    s=(i*(i+1)*(2*i+1))/6;
    printf("%.15g",s);
}

C语言中,计算平方与倒数序列的部分和通常涉及动态规划的思想。假设我们有一个数组`arr[]`存储了正整数,以及它们对应的平方项和倒数值。首先,我们需要两个变量分别用于存储平方和的累计值`square_sum`,和倒数序列部分和`reciprocal_sum`。 以下是实现步骤: 1. 初始化:声明并初始化这两个变量,比如`square_sum = 0`和`reciprocal_sum = 0`。 2. 遍历数组:对于每个元素`num`,进行以下操作: a. **计算平方和**:`square_sum += num * num;` b. **计算倒数**:如果`num > 1`,则添加倒数值到`reciprocal_sum`,即`reciprocal_sum += 1 / num;` (因为倒数序列通常是从1开始递减) 3. 每次更新后,都需要判断当前的`reciprocal_sum`是否需要四舍五入保留小数点后几位,这取决于实际需,可以用`printf`或其他浮点数格式化函数来控制精度。 4. 在遍历结束后,`square_sum`就是平方序列的部分和,而`reciprocal_sum`则是倒数序列的部分和。 下面是一个简单的示例代码片段: ```c #include <stdio.h> double partial_sums(int arr[], int n, int precision) { double square_sum = 0; double reciprocal_sum = 0; for (int i = 0; i < n; i++) { square_sum += arr[i] * arr[i]; if (arr[i] > 1) { reciprocal_sum += (double) 1 / arr[i]; // 注意类型转换防止溢出 } } // 根据precision对reciprocal_sum进行四舍五入 reciprocal_sum = round(reciprocal_sum * pow(10, precision)) / pow(10, precision); return square_sum + reciprocal_sum; } // 使用示例 int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); int precision = 2; printf("Square sum and reciprocal sum with %d decimal places: %.2f\n", precision, partial_sums(arr, n, precision)); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值