c语言使用循环编写勾股数,刘徽《九章算术》中的勾股数

若A、B、C为满足A2+B2=C2的正整数。我国古代数学书《周髀算经》曾经提到“勾广三,股修四,径偶五”这三个边都是正整数的直角三角形。在公元263年时,我国数学家:刘徽写了一本数学书,书名叫作《九章算术》,其中有

32+42=52

52+122=132

72+242=252

82+152=172

202+212=292

由此看来我国古代数学家已经研究出很多组勾股数。

(一)  见程序设计思路笔算从略

请你编写程序,求出100之内的所有组勾股数,并打印全部结果。

(二)  程序设计

设计思路

由不定方程:A2+B2=C2      (1)

有定理:不定方程(1)的适合条件

A>0,  B>0,   C>0,    (A,B)=1,2 A

的一切正整数解,可用下列公式表示出来:

A=2XY,    B=X2-Y2,    C=X2+Y2

这里的X和Y都是正整数,而且X>Y (X、Y)=1,2(X+Y)

如果按照此定理编写出源程序当然是可以的。但对不了解此定理的读者这样编写就比较困难。所以这里使用一般的方法。首先设法得到从3到100之间的数的两组合。利用二重循环可以达到这一目的。令外循环变量为A,A从1到99。令内循环的循环变量为B,B从A+1到100。然后在循环体内判断A和B是否满足等式(1)。

将满足等式的A和B及C打印出来。为了缩短机器运算时间,我们可以利用勾股数的奇偶特性。即在A和B中一个是奇数,另一个必定是偶数。那么可以让B从A+1开始,每次增加步长为2。因为A若是奇数,A+1就是偶数。以后步长是2,B总是为偶数。如果A是偶数,A+1就是奇数。以后步长是2,B总为奇数。我们用整形变量I、J、L分别代表A、B、C

FORTRON源程序:

WRITE(*,30)

DO 10 I=3,99

K=I+1

DO 10 J=K,100,2

S=I*I+J*J

S=SQRT(S)

L=S

IF(L.GT.100.OR.ABS(S-L).GT.0.1E-06) GOTO 10

WRITE(*,20)I,J,L

10 CONTINUE

20  FORMAT(2IX,3I5)

30  FORMAT(25X,’A          B           C ‘/20X,’--------------------’)

END

BASIC源程序

10 PRINT "A              B               C"

20 PRINT "--------------------------------"

30 FOR I = 3 TO 99

40   K = I + 1

45   FOR J = K TO 100

50     S = I * I + J * J

60     S = SQR(S)

70     L = INT(S)

80     IF L >= 100 OR L <> S THEN 100

90     PRINT I, J, L

100           NEXT J

110   NEXT I

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

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

相关文章

c语言边序列构造邻接表,结构C语言版期末考试考试(有答案).doc

人生难得几回搏&#xff0c;此时不搏更待何时&#xff1f;"数据结构"期末考试试题一、单选题(每小题2分共12分)1&#xff0e;在一个单链表HL中若要向表头插入一个由指针p指向的结点则执行( )A&#xff0e; HL&#xff1d;ps p一>next&#xff1d;HLB&#xff0e; …

c语言打不开h文件,说那个“mem.h”头文件打不开 怎么改啊 高手们帮帮忙

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include "stdio.h"#include "stdlib.h"#include "string.h"#include "conio.h"#include "mem.h"#include "ctype.h"#include "alloc.h"struct score{char…

C语言中表示温度符号,摄氏度符号怎么打(SCI论文中摄氏度°C符号的正确输法)...

大家可能知道中文的摄氏度百思特网是一个字符&#xff0c;而且输入方法比较简单&#xff0c;可以用搜狗输入法&#xff0c;还可以输入 "sheshidu"&#xff0c;第五个一般就是℃&#xff0c;甚至可以在网上或文献中复制粘贴。而英文的摄氏度C 却是两个字符&#xff0c…

利用spi发送接收信息c语言,SPI接收发送函数程序

unsigned char SPI_RW(unsigned char byte){?? ?unsigned char bit_ctr;?? ?for(bit_ctr0;bit_ctr<8;bit_ctr)?? ?{?? ??? ?NRF_MOSI(byte&0x80); // MSB TO MOSI?? ??? ?byte(byte<<1);?? ?// shift next bit to MSB?? ??? ?NRF_S…

android 跳转权限管理的代码,Android权限管理

Android权限管理说明在targetSdkVersion的值为23或者更高&#xff0c;就要进行权限管理&#xff0c;否则如果运行在Android6.0或以上的设备会没有相应权限而导致崩溃请求权限后&#xff0c;在onRequestPermissionsResult方法回调&#xff0c;在该方法判断三种状态&#xff1a;允…

android filehelper,为AndroidStudio开发mvp插件(MvpHelper)

如果觉得写mvp有点枯燥无味&#xff0c;我们可以做点 cool 的事情&#xff1a;做个 as 插件help.pngtodo-mvp: 基础的MVP架构。todo-mvp-loaders:基于MVP架构的实现&#xff0c;在获取数据的部分采用了loaders架构。todo-mvp-databinding: 基于MVP架构的实现&#xff0c;采用了…

android+5.q,MSM8909+Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要

MSM8909Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要参考文件\kernel\Documentation\power\qpnp-linear-charger.txt---下面是学习此文件\kernel\Documentation\devicetree\bindings\power\qpnp-linear-charger.txt1. 简介The QPNP linear charger drive…

岳阳鸿蒙数学培优阶梯训练,鸿蒙应用-呼吸训练app部分练习展示(开始)

本帖最后由 李洋水蛟龙 于 2020-12-20 18:11 编辑1.在主页面添加一个按钮并响应点击事件效果显示&#xff1a;图片1.png (404.17 KB, 下载次数: 0)2020-12-10 17:53 上传点击按钮“点我”下方便会显示“我被点击了”说明点击事件已完成代码如下&#xff1a;Index.hml文件中Hell…

Android无法优化应用,Android应用优化总结

原标题&#xff1a;Android应用优化总结内存泄漏最常见也是最严重的 &#xff1a;持有Activity 与Context引用&#xff0c;生命周期本该短于应用生命周期&#xff0c;该回收的没被回收掉&#xff0c;导致泄露检测手段&#xff1a;leakcanary mit等Handler泄露new Handler 替换为…

android日期选择滚轮框架,GitHub - liwenzhi/wheelview: 滚轮效果的View,日期选择器

#wheelview滚动效果的View这段时间需要用到一个时间选择器&#xff0c;但是不能使用日期对话框&#xff0c;因为它是筛选条件框架下的&#xff0c;只能是View&#xff01;这个WheelView改造后可以达到要求&#xff01;这个wheelview框架使用的类不多&#xff0c;就几个&#xf…

html页面返回原理,浏览器输入URL到界面显示(HTML渲染)发生了什么?

浏览器从输入URL到界面显示一共经历了6个阶段1. DNS(域名)解析2. TCP连接(三次握手)3. 发送HTTP请求4. 服务器处理请求并返回HTTP报文5. 浏览器解析渲染页面6. 连接结束1. DNS(域名)解析一个网址到ip地址的转换&#xff0c;找到URL对应的IP。如www.xiaochongtec.cn到22.33.55.6…

nginx缓存HtmL文件,Nginx在缓存的html文件上返回404

我试图在没有索引页的所有.html文件中添加缓存&#xff0c;但是当我做了一些更改时&#xff0c;我的文件进入了404找不到页面。Nginx在缓存的html文件上返回404这是我对我的默认配置&#xff0c;没有任何改变&#xff0c;我做了&#xff0c;没有工作。server {listen 80;server…

韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...

2011韩顺平轻松搞定网页设计(htmlcssjs)之javascript现场授课笔记(完整版)视频18整和19的前半部分不用看Javascript的基本介绍JS是用于WEB开发的脚本语言&#xff1a;脚本语言是什么&#xff1a;脚本语言不能独立使用&#xff0c;它和HTML/JSP/PHP/ASP.NET配合使用脚本语言也有…

大学计算机基础知识点图文,大学计算机基础知识点超详细总结

大学计算机基础知识点超详细总结 第一章 计算机及信息技术概述1. 电子计算机的发展历程①1946 年 2 月由宾夕法尼亚大学研制成功的 ENIAC 是世界上第一台电子数字计算机。 “诞生了一个电子的大脑” 致命缺陷&#xff1a;没有存储程序。②电子技术的发展促进了电子计算机的更新…

计算机专业学comsol,有关COMSOL的学习心得,与同是初学者的朋友共勉! - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

接触COMSOL也有一年时间了&#xff0c;相信很多朋友都有这样的感触&#xff0c;那就是完全不知所措&#xff0c;无从下手。根据网上的一些经验&#xff0c;参考案例&#xff0c;看用户手册&#xff0c;折腾了几个月甚至大半年的时间&#xff0c;对于模型计算的各种错误一头雾水…

兰州交通大学计算机科学与技术学院,兰州交通大学计算机科学与技术

职朋圈友兰州交通大学 | 计算机科学与技术 | 本科算机科学与技术学科为甘肃省省级重点学科&#xff0c;为硕士一级学科授权点&#xff0c;拥有国家级计算机实验教学示范中心、国家级交通信息类创新人才培养模式实验区。专业师资力量雄厚&#xff0c;2009年被授予国家级“计算机…

圣地亚哥的计算机科学在哪个学院,加州大学圣地亚哥分校计算机科学在哪个学院?...

加州大学圣地亚哥分校计算机科学在工程学院加州大学圣地亚哥分校雅各布工程学院成立于学校建校之初的1964-1965年&#xff0c;共开设6个系&#xff0c;拥有250多位世界级教师&#xff0c;开设本科、硕士和博士三个阶段的课程教育&#xff0c;目前共有本科生6025名&#xff0c;硕…

计算机网络检错码和纠错码的特点,检错码和纠错码有何不同?试比较在网络通信中使用时各自的优缺点。...

检错码和纠错码有何不同&#xff1f;试比较在网络通信中使用时各自的优缺点。更多相关问题心理发展的速度可以有个别差异&#xff0c;可以加速或延缓&#xff0c;但发展的顺序一般不能改变。这说明心理发展具有(德国邓克尔发现&#xff1a;人看到某物品具有一种功能后就很难看出…

云星空计算机名访问不可以,03.PLM系统访问金蝶云星空(webapi):读取基础资料编码、名称...

1. 需求描述PLM系统中的物料&#xff0c;BOM同步到金蝶云星空系统中时&#xff0c;构造的json数据中&#xff0c;一些基础资料字段需要传递编码&#xff0c;而不是名称。 本接口提供获取所有基础资料的编码、名称&#xff0c;可作为PLM系统中的对照关系。2. 接口定义2.1 请求地…

js复制html到粘贴板,用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容&#xff0c;火端也是用它。ZeroClipboard是利用flash来实现的&#xff0c;ZeroClipboard兼容性很好&#xff0c;但是由于现在越来越多的浏览器不支持flash&#xff0c;导致一些没法正常使用了。今天火端开始使用clipboard.…