2022蓝桥杯c组求和

题目名字 求和

题目链接

题意

输入的每个数都要两两相乘,然后再加起来,求最后总和;

思路

  1. 每个数乘这个数的前缀和即可

算法一:前缀和

实现步骤
  1. 先把前缀和写出来
  2. 再写for循环每个数都乘以自己的前缀和;
实现步骤
  1. 直接在for循环输入里面进行相乘相加的运算
代码
cpp 复制代码
 #include <iostream>
using namespace std;
const int N=1e6+10;
int n,a[N];
long long int sum=0,m=0;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        sum=sum+m*a[i];
        m=m+a[i];
    }
    cout<<sum<<endl;
    return 0;
}
时间复杂度

总结

  1. 在刚开始写的时候想的是用枚举的方法,两重for循环,但是只能对两个而且还超时了,所以一直写不出来,因为超时原因,所以不能直接暴力解决,可以进行一个小的运算;
  2. 不把这个题想的太死板,换个解题思路,直接就是这个数和这个数的前一项的前缀和直接相乘,就会清晰明了的多,但是要注意一下,实现后面的for循环i是等于n的,因为不能从第一个数字进行这个运算,所以掌握这种思维的灵活运用还是挺重要的,如果再次遇到这种会超时的题目不妨试试换个思路
  3. 当然还可以用在循环里输入的时候直接完成了相乘和相加的工作,还是要多练题,想法有了但是一直写不出来,或者各种小问题;
相关推荐
2401_8769075220 小时前
USB TYPE-C 公头连接器设计规范总结:提升可靠性、降本增效的关键指南
c语言·开发语言·设计规范
Illusionna.21 小时前
C 语言实现独立样本 t 检验和配对样本 t 检验
c语言·编程·统计·统计学·t-test·独立样本t检验·配对样本t检验
龚礼鹏1 天前
Android应用程序 c/c++ 崩溃排查流程二——AddressSanitizer工具使用
android·c语言·c++
CCPC不拿奖不改名1 天前
python基础:python语言中的函数与模块+面试习题
开发语言·python·面试·职场和发展·蓝桥杯
Herbert_hwt1 天前
C语言结构体操作符详解:从入门到精通的全方位指南
c语言
代码游侠1 天前
应用——MQTT客户端开发
服务器·c语言·开发语言·数据结构·算法
暴风鱼划水1 天前
三维重建【4-C】3D Gaussian Splatting:代码调试方法
c语言·开发语言
_OP_CHEN1 天前
【算法基础篇】(四十二)数论之欧拉函数深度精讲:从互质到数论应用
c++·算法·蓝桥杯·数论·欧拉函数·算法竞赛·acm/icpc
福楠1 天前
模拟实现stack、queue、priority_queue
c语言·开发语言·数据结构·c++
济6171 天前
linux(第十二期)--裸机实验(C 语言版 LED 灯实验)-- Ubuntu20.04
linux·c语言