算法练习-C/C++

这篇博客介绍了多个算法题目,包括A金币问题、B三角形面积计算、C序列排序、D任务计数、E矩阵转弯次数、F比亚迪最优路径、G物流费用计算、H木头生长与订单匹配及I小学数学题解。每个题目都有输入输出格式和样例,适合C/C++编程者进行算法训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A金币

老班将金币作为工资,发放给忠诚的学生。第一天,学生收到一枚金币;之后两天(第二天和第三天),每天收到两枚金币;之后三天(第四、五、六天),每天收到三枚金币;之后四天(第七、八、九、十天),每天收到四枚金币……;这种奖金发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,学生会在之后的连续N+1天里,每天收到N+1枚金币。

请计算在前K天里,骑士一共获得了多少金币。

输入格式

一个正整数K,表示发放金币的天数。

输出格式

一个正整数,即骑士收到的金币数。

输入输出样例

  • 输入:6/输出:14

  • 输入:1000/输出:29820

说明/提示

【输入输出样例 1 说明】

学生第一天收到一枚金币;第二天和第三天,每天收到两枚金币;第四、五、六天,每天收到三枚金币。因此一共收到 1+2+2+3+3+3=14 枚金币。

对于 100%的数据,1 ≤ K ≤ 10,000。

//数列规则:1,2,2,3,3,3,4,4,4,4 
#include <stdio.h>
int main()
{
	int m,n,k,s=0,count=1;
	scanf("%d",&k);//发放金币的天数 
	for(m=1;m<=k;count++){//m循环天数 
		for(n=1;n<=count;n++){//n同等金币持续循环天数 
			s+=count;m++;//s记录金币,m限制总天数 
			if(m>k) break;//循环够天数后退出 
		}
	}
	printf("%d",s);//收到的金币数 
	return 0;
} 

B三角形

一个三角形的三边长分别是 a,b,c那么它的面积为 sqrt{p(p-a)(p-b)(p-c)},其中 p=1/2*(a+b+c)。输入这三个数字,计算三角形的面积,四舍五入精确到 1 位小数。

保证能构成三角形,0<=q a,b,c<=q 10000≤a,b,c≤1000,每个边长输入时不超过2位小数。

输入输出样例

输入:3 4 5/输出:6.0

就套公式,不会有人没做出来吧?不会吧 不会吧?

#include <stdio.h>
#include <math.h>
int main(){
	double a,b,c;//三条边长
	scanf("%lf %lf %lf",&a,&b,&c);
	double p=(a+b+c)/2.0;//计算p
	double area=sqrt(p*(p-a)*(p-b)*(p-c));//计算面积
	printf("%.1lf",area);
	return 0;
}

C序列

假定有n(n<=1000)个整数(都在int范围内即-2147483648~2147483647)

在序列中,第一个数是n个整数中的最大数,第二个数是n个整数中的最小数,第三个数是n个数中的第二大数,第四个数是n个数中的第二小数…… 取过的数不能再取,依次类推,直到结束。

请你用程序正确的帮他找出这 n个数的老班序列。

输入格式

第1行为一个整数n。

接下来 n行给出了题目中所述的 n个整数,每行包含一个整数

输出格式

有n行,每行为一个整数,是满足条件的老班序列

输入输出样例

输入:
5
10
-1
3
3
-9
输出:
10
-

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值