A Piece of Cake
[题目链接]https://www.luogu.com.cn/problem/CF171C?contestId=149253
题意
简而言之: 第一个整数是a[0]。之后a[0]个整数a[1],a[2],…,a[a[0]], 输出:一个整数=a[1] + 2 x a[2] + 3 x a[3] + … + a[0] x a[a[0]], a[0]<=100,a[i]<=1000
思路
- 一维数组的输入输出,有点类似于等差数列,
2.要学会定义数组,代码中sum+=pa[i]等于是sum=sum+pa[i]
坑点
无坑点,很简单。
算法一:
时间复杂度
- 输出大小: 1.83191967010498 MiB
- 编译时间: 0.63s
实现步骤
- 首先定义数与数组,保证数组能够输入,
- 输出:一个整数=1*a[1] + 2 x a[2] + 3 x a[3] + … + a[0] x a[a[0]],其中 1,2,3,4等
可以看做是以1为首项,1为公差的等差数列。所以,p=p+1。
代码
#include<iostream>
#include<stdio.h>
#include<algorithm>
using namespace std;//头文件
int main()
{
int n,sum=0,p=0;//n-为下面数组做铺垫,sum-用来总求和,p表示“n*a[n]的n”
cin>>n;
int a[n];//数组a[n]
for(int i=0;i<n;i++)
{
cin>>a[i];//循环输入
}
for(int i=0;i<n;i++)//
{
p=p+1;
sum+=p*a[i];//sum=sum+p*a[i]
}
cout<<sum;
return 0;
}
// 输出:一个整数=1*a[1] + 2 x a[2] + 3 x a[3] + ...... + a[0] x a[a[0]],其中 1,2,3,4等
//可以看做是以1为首项,1为公差的等差数列。所以,p=p+1。
//代码实现:4*0+1*1+2*2+3*3+4*4=30...
总结
知识点:一维数组的for循环。