在线练习: http://noi.openjudge.cn/ https://www.luogu.com.cn/
年北京奥运会,A 国的运动员参与了
天的决赛项目
。现在要统计一下 A 国所获得的金、银、铜牌数目及总奖牌数。输入第
行是 A 国参与决赛项目的天数
,其后
行,每一行是该国某一天获得的金、银、铜牌数目(不超过
。输出
个整数,为 A 国所获得的金、银、铜牌总数及总奖牌数。
第
行是 A 国参与决赛项目的天数
,其后
行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
输出
行,包括
个整数,为 A 国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
3
1 0 3
3 1 0
0 3 0
4 4 3 11
#include<iostream>
using namespace std;
int main()
{
/*
3
1 0 3
3 1 0
0 3 0
*/
int a,c,d,b,e=0,f=0,g=0;//e,f,g分别是金银铜牌总数,a为天数
cin>>a;
for(int i=0;i<a;++i)
{
cin>>c>>d>>b;//输入:金银铜牌数量
e+=c;
f+=d;
g+=b;
}
cout<<e<<' '<<f<<' '<<g<<' '<<e+f+g;//金、银、铜牌总数及总奖牌数
return 0;
}
输出为:
对于给定的一个长度为 n 的正整数数列a;,现要将其分成连续的若干段并且每段和不超过 m(可以等于 m),问最少能将其分成多少段使得满足要求
第一行包含两个正整数 n,m,表示了数列的长度与每段和的最值 第二行包含n个空格隔开的非负整数ai。 数据范围:1<n<105 1<=ai<=m<=104。
输一个正整数,输出最少划分的段数。
5 6 4 2 4 5 1
3
#include<iostream>
using namespace std;
int n,m,a,sum,cnt;
int main()
{
/*
5 6
4 2 4 5 1
*/
cin>>n>>m;
for(int i=1;i<n;i++)
{
cin>>a;
if(sum+a>m){
cnt++;
sum=a;
}
else sum+=a;
}
cout<<cnt+1;
return 0;
}
输出为:
用手机发短信,一条短信资费为0.1 元,但限定一条短信的内容在 70个字以内(包括 70 个字)。如果一次所发送的短信超过了 70 个字,则会按照每 70个字一条短信的限制把它分割成多条短信发送。假设已经知道某人当月所发送的短信的字数,试统计一下他当月短信的总资费
第一行是整数 n(1 <n100),表示当月发送短信的总次数,接着 n 行每行一个整数(不超过 1000),表示每次短信的字数。
输出一行,当月短信总资费,单位为元,精确到小数点后 1 位
10 39 49 42 61 44 147 42 72 35 46
1.3
#include<iostream>
using namespace std;
double ans;
int n,x;
int main()
{
/*
*/
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>x;
int y=x/70; //y为x个70字
if(x%70) y++; // 如果x不是70的整数倍 执行y++
ans += y*0.1;
}
printf("%.1lf",ans);
return 0;
}
输出为:
令人惊奇的是,它还藏身于古人口口相传的故事里。古人常用“飞蛾扑火”来表达对一部分人自不量力的藐视,也用它来称颂为了爱情而视死如归的恋人。然而,飞蛾扑火的悲剧里也伫立着e的背影。人类对这一现象理解的常见误区,是认为昆虫具有趋光性,因此就容易被火光所吸引,从而自取灭亡。通过对昆虫习性的长期研究,人们才发现,飞蛾扑火仅仅是因为它认为自己是在以正确的路线飞行,而不知道早已深处险境。
原来,夜晚活动的昆虫为了确保自己的运动方向,通常以月光作为参考。它在漫长的进化中,已经学会了让自己的行动路线和一束平行光线保持固定的角度,这样就能以直线飞行。
月亮与地球的距离过于遥远,每一束到达地球的月光都可以近似看做平行线。虫子就是靠着这亿万年来皎洁的月光为自己导航。不幸的是,当灯光出现以后,它的亮度远远超过月光时,灯光周围的虫子就会把这个最强的光源作为指引它飞行的灯塔。这就为悲剧埋下了种子。
由于每一缕灯光都是从一点发出来,在周围空间呈现辐射状。飞蛾根据进化的习惯,依然保持跟每一缕光线相同的夹角飞行。最后的结果,就是旋转地一圈一圈坠入灯光的中心。飞蛾的飞行曲线被称为斐波拉契螺旋线。它描述的就是一个在辐射状的网格图里,按照和每条辐射线保持固定夹角的曲线模型。
公式
位置由e的t次方来描述 t是时间。
利用公式
,求
的值,要求保留小数点后
位。
输入只有一行,该行包含一个整数
,表示计算
时累加到
。
输出只有一行,该行包含计算出来的
的值,要求打印小数点后
位。
10
2.7182818011
。
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int n;
double e=1.0,sum=1.0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
e*=i;
sum+=1/e;
}
printf("%0.10lf",sum);
return 0;
}
输出为:
本文是C++系列博客,主要讲述常数e和累计的计算