用流程图或NS图描述解决如下实际问题的算法。求两个数m和n的最大公约数
时间: 2024-10-06 12:05:31 浏览: 160
要使用流程图或NS(流程)图描述计算两个数m和n的最大公约数(GCD)的算法,我们可以使用一种直观的方式来表示步骤。下面是一个简单的流程图描述:
**流程图:**
```
开始
|
V
输入 m 和 n (假设都是正整数)
检查 n 是否为0
|
V
如果 n = 0,则 m 就是 GCD (因为 GCD(m, 0) = m)
否则
计算 GCD(n, m % n) (辗转相除法)
将 n 更新为 m (m = n)
回到第4步
结束
GCD 的值就是当前的 m 或者 n
```
**NS 图 (Notation System 图):**
```plaintext
+----------------+
| 输入 |
+->| 检查 n 是否为0 |<-
+---------+----+
|
+--------v--------+
| 若 n=0 => 返回 m |
+-----------------+
| 否则 |
+--------+--------+
| 计算 GCD(n, m%n) |
+--------> 返回 GCD |
更新 m = n |
```
相关问题
用流程图、ns图、伪代码分别描述解决如下实际问题的算法。求两个数m和n的最大公约数
流程图:
开始 -> 输入m和n -> 如果m小于n,则交换m和n -> 如果n等于,则输出m为最大公约数,结束 -> 否则,令r为m除以n的余数 -> 将m赋值为n,将n赋值为r -> 返回第三步
NS图:
伪代码:
function gcd(m, n)
if m < n then
swap(m, n)
end if
while n != do
r = m % n
m = n
n = r
end while
return m
end function
其中,swap函数用于交换两个变量的值。
用传统流程图和NS结构的流程图分别表示以下问题的算法(在纸上绘制好流程图,拍照上传即可): 1、判断一个数n能否同时被3和5整除; 2、求两个整数m和n的最大公约数和最小公倍数。
1、传统流程图:
![传统流程图1](https://cdn.luogu.com.cn/upload/image_hosting/edavxkpj.png)
NS结构的流程图:
![NS结构的流程图1](https://cdn.luogu.com.cn/upload/image_hosting/r8f7g4b4.png)
2、传统流程图:
![传统流程图2](https://cdn.luogu.com.cn/upload/image_hosting/lv5jps7f.png)
NS结构的流程图:
![NS结构的流程图2](https://cdn.luogu.com.cn/upload/image_hosting/6sp9d8ro.png)
阅读全文