若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

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

  1. 九章算术 九:《勾股》

    九:<勾股> 1.勾股:今有勾三尺,股四尺,问为弦几何? 答曰:五尺. 2.勾股:今有弦五尺,勾三尺,问为股几何? 答曰:四尺. 3.勾股:今有股四尺,弦五尺,问为勾几何? 答曰:三尺.勾 ...

  2. 九章算术更相减损术的的c语言实现

    "关于约分问题,实质是如何求分子,分母最大公约数的问题.<九章算术>中介绍了这个方法,叫做"更相减损术",即"可半者半之,不可半者,副置分母.子之数 ...

  3. 5, 计算1~100中所有7的倍数的个数(c语言编程题,编写程式,分别统计1~100中,满足3的倍数,7的倍数各有多少个...

    编写程式,分别统计1-100中,满足3的倍数,7的倍数各有多少个以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 编写程式 ...

  4. c语言删除数组重复元素并升序,C语言编程题: 编写函数,从一个已经排序的数组中删去某数后,该数组仍然有序....

    满意答案 nanhrui57q 2014.01.10 采纳率:57%    等级:12 已帮助:8634人 #include #include int compear(void *, void *); ...

  5. 怎样才能将刘徽割圆术动画演示

    所谓"割圆术",是用圆内接正多边形的周长去无限逼近圆周并以此求取圆周率的方法.它是由我国古代的伟大数学家刘徽,提出来的.他在数学上的重大贡献是将我国最古的数学著作之一<九章算 ...

  6. c语言有关循环结构运用的题,应用C语言循环结构解决等差数列求和问题微课设计研究...

    高妍 [摘 要]本文以应用C语言循环结构解决等差数列求和问题作为微课主要内容,阐述了对微课设计进行的研究与探索. [关键词]C语言:循环结构:微课 当今,信息化高速发展,数字技术正在影响和改变着我们生 ...

  7. c语言for循环说课稿,C语言FOR循环说课稿.docx

    C语言FOR循环说课稿 各位评委老师上午好,我今天说课的内容是"FOR循环"(板书),下面我将从教材的地位及作用.学生学情.教学目标.教学重难点.教法.学法.教学过程.教学效果的预 ...

  8. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  9. C语言for循环的嵌套例题,c语言 for循环的嵌套(含答案)

    c语言 for循环的嵌套(含答案) 第 33.34 课时 for 循环的嵌套实验题一:1.下面程序的功能是计算:至 50 中是 7 的倍数的数值之和,请选择填空.D#include main() in ...

最新文章

  1. java 之 模板模式(大话设计模式)
  2. jwt如何防止token被窃取_JWT令牌
  3. 机器学习 | 聚类评估指标
  4. 把对方陷入困境中(博弈论的诡计)
  5. 前后端分离重复提交_java+react前后端分离项目处理重复提交问题
  6. 自己动手为Spark 2.x添加ALTER TABLE ADD COLUMNS语法支持
  7. 【译】使用 CocoaPods 模块化iOS应用
  8. javascript中实现动画是settimeout(递归)还是用setinterval好?
  9. python爬取别人qq空间相册_Python_小林的爬取QQ空间相册图片链接程序
  10. 美国卡尔顿学院计算机专业怎么样,如何获得美国名校卡尔顿学院录取?
  11. CuPy is not correctly installed
  12. 巅峰对决!2020人工智能创新创业大赛总决赛评委阵容、项目亮点震撼揭晓
  13. 分享一个python生成ico图片程序
  14. 电脑录麦克风声音软件的选择
  15. [施工中]Java阿里云服务器ECS建站操作不完全指北
  16. Linux内核的下载和解压
  17. 鸿蒙时代实力排名,鸿蒙时期神魔不敢进入四大禁区,九天银河上榜,第一堪称黑暗禁地...
  18. jquery 访问手机摄像头_jQuery webcam plugin调用摄像头
  19. 安川5系7系伺服 电路 驱动器原理图
  20. Profibus Profinet EtherCAT总线 工业现场总线技术应用开发

热门文章

  1. c语言入门 在线,c语言入门课件1.docx
  2. c# mysql 封装_C#简单通用的数据库连接封装
  3. 清华大学 现代软件工程 学生特别想学的领域
  4. 语义网络分析图怎么做_怎么去分辨化工壶,光说可能大家还是会有疑惑,所以做了几个图...
  5. 小程序switch内部加上文字_文字游戏大全:模拟游戏会长经营公会的小程序,你会管理公会吗?...
  6. 计算机科学系小学教育专业就业前景,小学教育专业就业方向与就业前景
  7. 电脑屏幕卡住了按什么都没反应_手机突然“死机”了关机也不行,怎么按都没反应,怎么办?...
  8. html填满剩余空间,html – 标题,两侧填充剩余空间
  9. 如何修改ant-input的高度_水质自动采样器的流量计功能如何应用?
  10. switch matlab c语言,matlab switch语句使用