PTA乙级 (1049 数列的片段和 (20分))

1049 数列的片段和 (20分)

https://pintia.cn/problem-sets/994805260223102976/problems/994805275792359424

第一次提交:

代码:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int n;
	int i,j,k;
	double arr[100005],sum=0;
	cin>>n;
	for(i=1;i<=n;i++) cin>>arr[i];
	for(int i=1;i<=n;i++)
	{
		k=i;
		for(j=n-i+1;j>=1;j--)
		{
			sum+=(arr[k]*j);
			k++;
		}
	}
	printf("%.2f\n",sum);
	return 0;
}

  

第二次提交:

代码:

#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
	int n;
	int i,j,k;
	double arr[100005],sum=0;
	cin>>n;
	for(i=1;i<=n;i++) cin>>arr[i];
	for(int i=1;i<=n;i++)
	{
		j=i;
		sum+=(arr[i]*(n-j+1)*j);
	}
	printf("%.2f\n",sum);
	return 0;
}

原文地址:https://www.cnblogs.com/jianqiao123/p/12231396.html

时间: 2024-07-30 17:35:52

PTA乙级 (1049 数列的片段和 (20分))的相关文章

PAT 乙级 1049 数列的片段和(20) C++版

1049. 数列的片段和(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4)

1049. 数列的片段和(20)

1049. 数列的片段和(20) 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段. 给定正整数数列,求出全部片段包含的所有的数之和.如本例中10个片段总和是0.1 + 0.3 + 0.6

PAT-乙级-1049. 数列的片段和(20)

1049. 数列的片段和(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CAO, Peng 给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4)

PTA 乙级 1017 A除以B (20 分) C/C++

1017 A除以B (20 分) 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一行中依次给出 A 和 B,中间以 1 空格分隔. 输出格式: 在一行中依次输出 Q 和 R,中间以 1 空格分隔. 输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3 1 #include<stdio.h> 2 #include&

PTA乙级(1077 互评成绩计算 (20分),(C++取整)

C++取整 头文件:#include <cmath> 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int main() 5 { 6 double a=2.5; 7 cout<<ceil(a)<<endl; //向上取整 8 cout<<floor(a)<<endl; //向下取整 9 cout<<round(a)<<

PTA乙级 (1069 微博转发抽奖 (20分)(vector,map))

1069 微博转发抽奖 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805265159798784 1.使用vector来保存输入的用户名. 2.使用map来进行筛选,记录用户是否已经中奖. 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cmath> 5 #in

PTA乙级 (1018 锤子剪刀布 (20分))

1018 锤子剪刀布 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> using names

1049 数列的片段和(20)(20 分)

给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列{0.1, 0.2, 0.3, 0.4},我们有(0.1) (0.1, 0.2) (0.1, 0.2, 0.3) (0.1, 0.2, 0.3, 0.4) (0.2) (0.2, 0.3) (0.2, 0.3, 0.4) (0.3) (0.3, 0.4) (0.4) 这10个片段. 给定正整数数列,求出全部片段包含的所有的数之和.如本例中10个片段总和是0.1 0.3 + 0.6 + 1.0 + 0.2 + 0.5 +

PAT 乙级 1049 数列的片段和

输入样例: 4 0.1 0.2 0.3 0.4 输出样例: 5.00 暴力解法时间复杂度Θ(n^3) 空间复杂度Θ(n) 这种复杂度肯定会超时的. 一开始我还以为是DP,优化掉了一层循环时间复杂度Θ(n^2) 空间复杂度Θ(n) 结果还是超时了. #include <iostream> #include <stdio.h> #include <string.h> #include <string> #include <map> #include