洛谷C++简单题小练习day19—报名签到和筹备资金两个小程序

day19--报名签到--2.23

习题概述

题目描述

n 位同学(编号从 1 到 n)同时来到体育馆报名签到,领取准考证和参赛资料。为了有序报名,这 n 位同学需要按编号次序(编号为 1 的同学站在最前面)从前往后排成一条直线。然而每一位同学都不喜欢拥挤,对于第 i 位同学,如果有另外一位同学距离他/她的距离小于 ai​,那么就会发生冲突。小可可想知道如果要不发生任何冲突的情况下,这 n 位同学排队的队列最短长度是多少。

输入格式

第一行一个整数 n ,表示报名签到的同学人数。

第二行有 n个整数,第 i 个整数 ai​ 表示第 i 个同学必须与其他同学保持的距离。

输出格式

输出一行,包括一个整数,表示这 n 位同学排队队列的最小长度。

注意:n 位同学要按 1 到 n 的次序从前往后排队。

代码部分

法一

#include<bits/stdc++.h>
using namespace std;

int a[100001];
int main()
{
	//数据范围很大,一定要使用long long
	long long n,dis=0;//初始化dis为0
	cin>>n;
    for(int i=1;i<=n;i++)
    cin>>a[i];
    for(int i=1;i<=n-1;i++)//这里循环到n-1,因为最后一个人后面已经没有人了,因此不用算
    {
    	if(a[i]<=a[i+1])//比较大小
    	{
    		dis+=a[i+1];//总距离累计
    	}
    	else dis+=a[i];
    }
    cout<<dis;//输出
    return 0;
}

法二

#include<bits/stdc++.h>//万能头文件 
using namespace std;//命名空间 
long long a[100001],n,ans;//定义用long long 
int main()//主函数 
{
	cin>>n;//读入n
	for(int i=1;i<=n;i++) cin>>a[i];//读入a[i],a的每一位 
	for(int i=2;i<=n;i++) ans+=max(a[i-1],a[i]);//循环从2开始,比较 
	cout<<ans;//输出答案 
	return 0;//程序结束,返回0 
}

心得体会 

注意活用数组!


day19--筹备资金--2.23

习题概述

在征服南极之后,Davor 开始了一项新的挑战。下一步是在西伯利亚、格林兰、挪威的北极圈远征。他将在 2018 年 12 月 31 日开始出发,在这之前需要一共筹集 n 元钱。他打算在每个星期一筹集 x 元,星期二筹集 x+k 元,……,星期日筹集 x+6k 元,并连续筹集 52 个星期。其中x,k 为正整数,并且满足1≤x≤100。

现在请你帮忙计算 x,k为多少时,能刚好筹集 n 元。

如果有多个答案,输出 x 尽可能大,k 尽可能小的。注意 k 必须大于 0。

代码表示

#include<bits/stdc++.h>
using namespace std;

long long n;
int main()
{
	cin>>n;
	n/=52;//每周的平均筹集金额
	for(int k=1;k>0;k++)
	{
		for(int x=100;x>=1;x--)//1≤x≤100
		{
			if(x*7+k*21==n)
			{
				cout<<x<<endl<<k;
				return 0;
			}
		}
	}
}

心得体会

1.循环问题:

1)外层循环枚举k(k ∈ N+),因为k要尽可能小,所以k从1开始;

2)内层循环枚举x(x ∈ [1,100],且x ∈ N+),因为x要尽可能的大,所以x从100开始;

2.适当的进行数学运算让我们的代码更简单,复杂度更小!n/=52这样算每周的平均筹集金额就好即x*7+k*21==n;

3.注意n可能比较大所以用long long这个数据类型。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 洛谷c是一个在洛谷平台上运行的控制台小游戏。在洛谷c里,玩家可以体验到纯粹的命令行游戏的乐趣。 洛谷c提供了丰富多样的游戏选择,包括迷宫、扫雷、数独等经典游戏。玩家可以通过键盘输入命令与游戏进行交互,通过编写c语言代码来完成各种游戏任务。 在洛谷c中,玩家可以锻炼自己的逻辑思考和编程能力。比如,在迷宫游戏中,玩家需要编写代码来实现自动寻找出口的功能;在扫雷游戏中,玩家需要编写代码来实现揭开方块、计算周围雷数等功能。 洛谷c还提供了竞赛模式,玩家可以参加各种比赛,与其他玩家切磋编程技巧。通过比赛,玩家可以学习到其他程序员的优秀代码,不断提升自己的编程水平。 洛谷c也提供了交流和学习的平台,玩家可以与其他玩家交流游戏心得、学习经验,共同进步。在洛谷c的论坛中,玩家可以提问问、分享代码,获得其他玩家的帮助和指导。 总之,洛谷c是一个有趣并且有教育价值的控制台小游戏。通过游戏,玩家能够提高编程能力,锻炼逻辑思维,在与其他玩家的交流中不断学习和成长。 ### 回答2: 洛谷c是一个控制台小游戏,它是一个基于C语言编写的游戏平台。这个平台提供了各种类型的游戏,如迷宫游戏、飞行游戏、射击游戏等等。洛谷c的游戏都是在控制台下运行的,没有图形界面,所有的操作都是通过键盘输入和控制台输出来完成。 在洛谷c中,你可以通过学习C语言来编写自己的小游戏,也可以玩其他用户编写的游戏。这是一个很好的学习C语言的平台,通过编写小游戏可以锻炼自己的编程能力和逻辑思维。 洛谷c的游戏很有趣,而且有很多挑战性的关卡。你可以在游戏中探索各种各样的场景,解决难,战胜敌人。游戏的难度逐渐增加,所以你需要不断提升自己的能力才能通关。 另外,洛谷c还有一个活跃的社区,你可以在社区中与其他玩家交流,分享自己的作品和经验。这样可以帮助你更好地理解游戏中的问,并且找到解决问的方法。 总之,洛谷c是一个可以让你学习C语言、锻炼编程能力和享受游戏乐趣的平台。无论你是初学者还是有一定编程经验的人,都可以在这里找到适合自己的游戏和挑战。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值