高级语言讲义2018计专(仅高级语言部分)

news2024/11/25 23:03:18

1.编写完整程序解决中国古代数学家张丘健在他的《算经》中提出的”百钱百鸡问题“:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁,母,雏各几何

#include <stdio.h>

void cal() {
	for(int i=0; i<=20; i++)
		for(int j=0; j<=33; j++)
			for(int k=0; k<=300; k++)
				if((5*i+3*j+k*1.0/3==100)&&(i+j+k==100)) {
					printf("%d %d %d",i,j,k);
					printf("\n");
				}
}

int main() {
	cal();
}

2.编写一个递归函数,实现如下公式的计算功能,其中n为自然数

f(n)=0/(1*2!)+1/(2*3!)+2/(3*4!)+....+n/((n+1)*(n+2)!)

#include <stdio.h>

int fac(int n) {
	if(n==0)
		return 1;
	return fac(n-1)*n;
}

int func(int n) {
	if(n==0)
		return 0;
	return func(n-1)+n/((n+1)*fac(n+2));
}

3.验证卡布列卡猜想。印度数学家卡布列卡在研究数学问题时发现一个有趣的现象:用不完全相同的四个数字组成一个四位数,将组成这个四位数的四个数字重新排序,组成一个最大的数和一个最小的数,并用较大的数减去较小的数,对减得的差再重复上述操作,若减得的差不够四位数, 用零补位(可以在任何位置补位),不断地做下去,最后变成一个固定不变的数:6174。卡布列卡普做过大量的试验,结果从任何满足条件的四位数开始,最后总能变成6174,因此,卡布列卡把6174叫做布列卡常数。例如,我们从4231开始,首先把4231重新排列成4321和1234,两数相减得3087;再把3087重新排列成8730和0378,两数相减得8352;再把8352重新排列成8532和2358。相减得6174;再把6174重新排列成7641和1467。两数相减得6174。编写一个完整程序,用输入的任意一个由不完全相同的四个数字组成的四位数验证卡布列卡猜想,并把验证猜想过程的每步计 算结果打印出来。

#include <stdio.h>
#define N 4

int getmax(int *arr) {
	sort(arr,0);
	int flag=0;
	for(int i=0; i<N; i++)
		flag+=arr[i]*pow(10,N-1-i);
	return flag;
}

int getmin(int *arr) {
	sort(arr,1);
	int flag=0;
	for(int i=0; i<N; i++)
		flag+=arr[i]*pow(10,N-1-i);
	return flag;
}

void sort(int *arr,int flag) {
	for(int i=0; i<N-1; i++)
		for(int j=0; j<N-i-1; j++)
			if(flag==1) {
				if(arr[j]>arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			} else {
				if(arr[j]<arr[j+1]) {
					int temp=arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=temp;

				}
			}
}

int *getarr(int *arr,int n) {
	for(int i=0; i<N; i++) {
		arr[N-1-i]=n%10;
		n/=10;
	}
}

int main() {
	int n;
	scanf("%d",&n);
	int arr[N];
	getarr(arr,n);
	int max = getmax(arr);
	int min = getmin(arr);
	int flag = max-min;
	printf("max=%d\nmin=%d\nflag=%d\n",max,min,flag);
	while(flag!=6174) {
		getarr(arr,flag);
		max = getmax(arr);
		min = getmin(arr);
		flag=max-min;
		printf("max=%d\nmin=%d\nflag=%d\n",max,min,flag);
	}
}

4.已知数组ax[100]和ay[100]中分别保存了平面上100个点的横坐标和纵坐标,假定其中任意三个点均可以构成三角形,编写一段代码,求100个点组成的所有三角形中面积最大三角形以及面积,输出面积最大的三角形的各顶点坐标以及面积值,满足条件的面积可能有多组。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

typedef struct Point {
	double x,y;
} Point;

double dist(struct Point p1,struct Point p2) {
	return sqrt(pow(p1.x-p2.x,2)+pow(p1.y-p2.y,2));
}

double area(struct Point p1,struct Point p2,struct Point p3) {
	double a,b,c;
	a=dist(p1,p2);
	b=dist(p1,p3);
	c=dist(p2,p3);
	double s=(a+b+c)/2.0;
	return sqrt(s*(s-a)*(s-b)*(s-c));
}

int main() {
	struct Point pts[110];
	double max=-1;
	for(int i=0; i<100; i++)
		scanf("%lf %lf",&pts[i].x,&pts[i].y);
	max=area(pts[0],pts[1],pts[2]);
	struct Point maxpoint[3];
	for(int flag=0; flag<3; flag++)
		maxpoint[flag]=pts[flag];
	for(int i=0; i<100; i++)
		for(int j=i+1; j<100; j++)
			for(int k=j+1; k<100; k++)
				if(max<area(pts[i],pts[j],pts[k])) {
					max=area(pts[i],pts[j],pts[k]);
					maxpoint[0]=pts[i];
					maxpoint[1]=pts[j];
					maxpoint[2]=pts[k];
				}
	for(int flag=0; flag<3; flag++)
		printf("x=%lf y=%lf\n",maxpoint[flag].x,maxpoint[flag].y);
	printf("maxarea = %lf",max);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1493224.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每日一题-链表的中间结点

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 上面是解题题目&#xff1a; 解题思路&#xff1a;快慢指针法--慢指针一次指向下一个&#xff0c;快指针一次指向下两个 解答过程&#xff1a; /*** Definition for singly-linked…

shopify 如何实现阶梯价展示

在Shopify中&#xff0c;您可以通过使用变体&#xff08;variants&#xff09;和价格规则&#xff08;price rules&#xff09;来实现阶梯价展示。阶梯价是指随着购买数量的增加&#xff0c;商品价格逐渐降低的策略。以下是在Shopify上实现阶梯价展示的步骤&#xff1a; 1. 创…

全志D1s开发板软件入门之Hello World演示

Hello Word 本章节将讲解如何使用电脑&#xff08;上位机&#xff09;交叉编译一个打印 hello word 的小应用&#xff0c;并将其push到开发板&#xff08;下位机&#xff09;上运行起来&#xff0c;打印出 hello word。这是嵌入式应用开发的最基础步骤。在此之前&#xff0c;你…

JavaScript的for循环与双重for循环,聪明人已经收藏了

css盒模型 1&#xff0c;css盒模型基本概念&#xff1f; 2&#xff0c;标准模型和IE模型的区别&#xff1a;计算高度和宽度的不同&#xff0c;怎么不同&#xff0c;高度宽度是怎么计算的&#xff1f; 3&#xff0c;css如何设置这两种模型&#xff1f; 4&#xff0c;js如何设置…

【BUG】Windows状态栏总卡死解决办法

屋漏偏逢连夜雨&#xff0c;正在赶deadline呢&#xff0c;Windows状态老卡死&#xff0c;一时间崩溃。 解决办法&#xff1a; 右键状态栏新闻和咨询关掉 这个烧笔新闻与资讯我真服了

做分析用什么工具

做分析用什么工具 导读 数据分析是数据辅助决策的最后一公里&#xff0c;是最终的数据可视化展示与探索分析的部分&#xff0c;选择使用最适合的数据展示方式&#xff0c;可以帮助分析人员大大提升分析效率。 问题&#xff1a; ● 纠结选择哪个工具 ● 纠结从哪里学起&#x…

Java 学习和实践笔记(27):Object类的基本特性、toString方法以及IDEA的部分快捷键介绍

Object类基本特性&#xff1a; 1.Object类是所有类的父类&#xff0c;所有的Java对象都拥有Object类的属性和方法&#xff08;注意拥有并不等于可以直接使用&#xff09; 2.如果在类的声明中未使用extends&#xff0c;则默认继承Object类。 toString方法是Object类里定义的一个…

连接器中的PI “电源完整性”

【摘要/前言】 在连接器中&#xff0c;我们经常谈论信号完整性&#xff08;SI&#xff09;以及我们为最新应用开发新的高速连接器解决方案的工作。很多厂商在112Gbps PAM4信令领域非常活跃&#xff0c;但我们也经常谈论224Gbps PAM4。在之前对Samtec产品管理总监Keith Guetig的…

26.基于springboot + vue实现的前后端分离-就业管理系统

项目介绍 系统分为管理员、企业、求职者三个角色 管理员&#xff1a; 登录、个人中心、学生信息管理、企业信息管理、岗位分类管理、学历信息管理、友情链接管理、新闻资讯管理、收藏管理、招聘信息管理、应聘信息管理、求职者信息管理 企业&#xff1a; 注册、登录、个人…

【Leetcode 2673】使二叉树所有路径值相等的最小代价 —— 贪心法

2673. 使二叉树所有路径值相等的最小代价 给你一个整数n表示一棵 满二叉树 里面节点的数目&#xff0c;节点编号从1到n。根节点编号为1&#xff0c;树中每个非叶子节点i都有两个孩子&#xff0c;分别是左孩子2 * i和右孩子2 * i 1。 树中每个节点都有一个值&#xff0c;用下…

虚拟化之内存(Memory)

一 内存的查看方式 free -k/m/h cat /proc/meminfodmesg |grep memory free命令的实质是根据meminfo中的文件来提取信息 二 内存虚拟化 1.概念&#xff1a;由于物理MMU只能通过Host机的物理地址进行寻址&#xff0c;所以实现内存虚拟化&#xff0c;关键是需要将Guest机的…

Unity性能优化篇(二) 静态合批步骤与所有注意事项\游戏运行时使用代码启动静态合批

静态合批步骤: 1.开启Project Settings —>Player–>Other Setting里勾选Static Batching选项(一般情况下unity都是默认勾选状态) 2.勾选需要合批的静态物体上的Batching Static项,勾选后此物体下的所有子物体都默认参与静态合批(勾选后物体不能进行移动/旋转/缩放操作,…

C#,入门教程(06)——解决方案资源管理器,代码文件与文件夹的管理工具

上一篇&#xff1a; C#&#xff0c;入门教程(05)——Visual Studio 2022源程序&#xff08;源代码&#xff09;自动排版的功能动画图示https://blog.csdn.net/beijinghorn/article/details/124675293 大家平时都怎么管理源代码与文件夹呢&#xff1f;世界上最好的集成开发环境…

TinyEMU编译与使用(一)

TinyEMU编译与使用&#xff08;一&#xff09; 1 介绍2 准备工作3 编译TinyEMU3.1 安装依赖库3.2 编译 4 运行TinyEMU4.1 在线运行4.2 离线运行 5 共享目录5.1 修改root_9p-riscv64.cfg5.2 启动TinyEMU5.3 执行挂载命令 6 TinyEMU命令帮助 1 介绍 原名为riscvemu&#xff0c;于…

Oracle 的同义词(Synonym) 作用

Oracle 同义词(Synonym) 是数据库对象的一个别名&#xff0c;Oracle 可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型&#xff1a; 私有同义词&#xff1a;拥有 CREATE SYNONYM 权限的用户(包括非管理员用户)即可创建私有同义词&#xff0c;创建的…

43. 【Linux教程】创建分区

前面小节介绍了文件系统&#xff0c;本小节介绍如何创建分区&#xff0c;创建分区之后就可以用来容纳文件系统。 1. 硬盘分区介绍 Linux 磁盘分区主要分为基本分区&#xff08;primary partion&#xff09;和扩充分区 (extension partion) 两种&#xff0c;基本分区和扩充分区…

Web-Check网站检查工具

Web-Check是一款网站检查工具&#xff0c;通过该工具&#xff0c;能够查看网站的各种关键数据&#xff0c;包括 DNS 记录、服务器位置、SSL 证书等方面的信息 开源地址 https://github.com/Lissy93/web-check 部署 docker run -d --name web-check -p 3000:3000 lissy93/web…

嵌入式系统是什么?Linux应用开发是开发什么的?

第一篇&#xff1a; 原文链接&#xff1a;https://www.zhihu.com/question/464205608/answer/3358027187 一、什么是嵌入式系统 嵌入式系统是以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可裁剪&#xff0c;适用于应用系统&#xff0c;对功能、可靠性、…

比较 2 名无人机驾驶员:借助分析飞得更高

近年来&#xff0c;越来越多的政府和执法机构使用无人机从空中鸟瞰。为了高效执行任务&#xff0c;无人机必须能够快速机动到预定目标。快速机动使它们能够在复杂的环境中航行&#xff0c;并高效地完成任务。成为认证的无人机驾驶员的要求因国家/地区而异&#xff0c;但都要求您…

Web组态可视化编辑器 快速绘制组态

随着工业智能制造的发展&#xff0c;工业企业对设备可视化、远程运维的需求日趋强烈&#xff0c;传统的单机版组态软件已经不能满足越来越复杂的控制需求&#xff0c;那么实现Web组态可视化界面成为了主要的技术路径。 行业痛点 对于软件服务商来说&#xff0c;将单机版软件转变…