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

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.mfbz.cn/a/433029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

x6.js 流程图绘制笔记,常用函数

官方参考网站如下&#xff1a;https://antv-x6.gitee.io/zh/docs/tutorial/about 安装x6 输入以下命令 npm install antv/x6 --save 引用插件代码如下&#xff1a; import { Graph } from antv/x6; 创建绘制区域 this.guiX6 new Graph({container: document.querySelect…

个人社区 项目测试

目 录 一.背景及介绍二.功能详情三.手动测试1.编写测试用例2.测试 一.背景及介绍 该项目采用了前后端分离技术&#xff0c;把我们的数据保存到数据库中&#xff0c;操作对象是用户和个人文章编辑保存&#xff0c;前端的页面实现了登录&#xff0c;列表&#xff0c;编辑&#x…

基于单片机的蓝牙无线密码锁设计

目 录 摘 要 Ⅰ Abstract Ⅱ 引 言 1 1 系统总体设计 3 1.1 系统设计要求 3 1.2 系统设计思路 3 2 系统硬件设计 5 2.1 设计原理 5 2.2 主控模块 5 2.3 芯片模块 8 2.4 矩阵键盘模块 9 2.5 液晶显示模块 10 2.6 继电器驱动模块 12 2.7 蜂鸣器模块 13 2.8 蓝牙模块 14 3 系统软…

鸿蒙4.0-DevEco Studio界面工程

DevEco Studio界面工程 DevEco Studio 下载与第一个工程新建的第一个工程界面回到Project工程结构来看 DevEco Studio 下载与第一个工程 DevEco Studio 下载地址&#xff1a; https://developer.harmonyos.com/cn/develop/deveco-studio#download 学习课堂以及文档地址&#x…

Docker 快速入门实操教程(完结)

Docker 快速入门实操教程&#xff08;完结&#xff09; Docker&#xff0c;启动&#xff01; 如果安装好Docker不知道怎么使用&#xff0c;不理解各个名词的概念&#xff0c;不太了解各个功能的用途&#xff0c;这篇文章应该会对你有帮助。 前置条件&#xff1a;已经安装Doc…

Vue.js+SpringBoot开发天然气工程运维系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统角色分类2.2 核心功能2.2.1 流程 12.2.2 流程 22.3 各角色功能2.3.1 系统管理员功能2.3.2 用户服务部功能2.3.3 分公司&#xff08;施工单位&#xff09;功能2.3.3.1 技术员角色功能2.3.3.2 材料员角色功能 2.3.4 安…

nRF52832——GPIO端口的应用

nRF52832——GPIO端口的应用 nRF52832 GPIO 端口资源描述nRF52832 GPIO 寄存器介绍GPIO 端口状态的设置GPIO 输出设置 nRF52832 GPIO 输出应用点亮第一个 LED 灯硬件部分Keil 工程搭建 蜂鸣器驱动硬件设计程序编写测试验证 nRF52832 GPIO 输入应用GPIO 输入扫描流程机械按键输入…

Vue3兄弟组件传值(同级别组件传值Vue3)

简述&#xff1a; Vue3兄弟组件传值&#xff0c;我们可以使用"Mitt"插件来实现。通过使用事件总线的方式&#xff0c;我们可以将数据从一个组件传递给另一个组件&#xff0c;实现兄弟组件之间的通信。 或者利用 Vue 3 自身的provide 和 inject 响应式 API 来实现兄弟…

STM32FreeRTOS消息队列(STM32Cube高效开发)

文章目录 一、队列&#xff08;一&#xff09;简介&#xff08;二&#xff09;FreeRTOS队列特点1、入队阻塞&#xff1a;队列满了&#xff0c;此时无法继续写入数据2、出队阻塞&#xff1a;队列为空&#xff0c;此时无法读出数据3、入队阻塞解除&#xff0c;有多个任务等待时&a…

实战:基于特征词的语音唤醒

本章前面介绍了纯理论知识&#xff0c;目的是阐述语音识别的方法。接着搭建了开发环境&#xff0c;让读者可以动手编写代码。下面以识别特定词为例&#xff0c;使用深度学习方法和Python语言实现一个实战项目——基于特征词的语音唤醒。 说明&#xff1a;本例的目的是演示一个…

当Sora风靡,AI风潮吹醒金融科技

以下文章来源&#xff1a;凤凰网 前有OpenAI发布了Sora&#xff0c; 后有苹果放弃了秘密进行了十年的造车项目&#xff0c;转身拥抱AI&#xff0c; 再有国内市场上此起彼伏的AI呐喊声&#xff0c; 一场以AI为主导的新热浪&#xff0c;正在来袭。 当AI的风潮开始兴盛&#x…

JavaScript 原型链继承:掌握面向对象的基础

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

springboot + jpa + 达梦数据库兼容 Mysql的GenerationType.IDENTITY主键生成策略

导入达梦数据库对hibernate的方言包 <dependency><groupId>com.dameng</groupId><artifactId>DmDialect-for-hibernate5.6</artifactId><version>8.1.2.192</version></dependency>配置文件中添加方言配置和主键生成策略配置…

(译) 理解 Prometheus 的范围向量 (Range Vector)

Prometheus 中 Range Vector 的概念是有一点不直观的&#xff0c;除非你彻底阅读并理解了官方提供的文档。谁会这样做呢&#xff0c;去读官方文档&#xff1f;大多的人应该会花些错误的时间去做了一些错误的事情&#xff0c;然后随机去寻找一篇像本文一样的文章去理解这个概念&…

2024年Java者未来的出路在哪里,java多线程面试

重要 大环境对于我们能力要求越来越高&#xff0c;医学专家又说今年冬天新冠肺炎将“席卷重来”。 如果疫情再次爆发&#xff0c;势必将再次影响企业的正常运作&#xff0c;一波裁员浪潮你又能否抗住&#xff1f; 不管如何&#xff0c;明年金三银四又是一波跳槽时机&#xf…

AbaqusCST仿真软件功能对比简介

一、功能对比 支持维度CST&#xff1a;用于设计、分析和优化电磁部件及系统。适用于整个 EM 范围内各类应用领域的电磁场解算。Abaqus&#xff1a;ABAQUS 是一套功能强大的工程模拟的有限元软件&#xff0c;其解决问题的范围从相对简单的线性分析到复杂的非线性问题。 ABAQUS 包…

基于springboot+vue的精简博客系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

flutter弹窗动画,2024年上半年最接地气的Android面经

正文 腾讯研发人数将近 2 万人&#xff0c;T4 级别的人数大概也不超过 500 人&#xff0c;这还是在近两年 T3 到 T4 级别人数增多的情况下。 该资料一共有五大章节&#xff0c;452页&#xff0c;是这位腾讯T4大佬耗时半个月熬夜整理出来的。 目录 第一章 深入解析 Binder. …

Java面试题【必知必会】Mybatis常见面试题(2024)

近期一直在准备面试&#xff0c;所以为了巩固知识&#xff0c;也为了梳理&#xff0c;整理了一些java的基础面试题&#xff01;同时也希望各位英雄和女侠能够补充&#xff01;不胜荣幸&#xff01;&#xff01;&#xff01; 名称地址Java面试题【必知必会】基础&#xff08;202…

Web3 赛道屠夫:「铁顺」是谁?

撰文&#xff1a;Terry 加密世界从不缺传奇故事&#xff0c;从不会编程的「失业青年」Hayden Adams 一入 Web3 便推出巅峰之作 Uniswap&#xff08;《交易平台搅局者「Uniswap 之父」&#xff0c;不会编程的「失业青年」&#xff0c;出手即巅峰》&#xff09;&#xff0c;到 An…