例3-9
题目描述:编写函数判别一个数是否是质数,在主程序中实现输入输出。
设计思路:
1.输入一个数。
2.让这个数除余2到该数的一半,分析是否有余0是。
3.有则不是,否则是。
流程图:
代码实现:
#include<iostream> using namespace std; bool Is(int a) { for (int i = 2; i < a / 2; i++) { if (a % i == 0) { return 0; } else return 1; } } int main() { bool is; int x; cin >> x; is = Is(x); if (is) { cout << "质数"; } else { cout << "非质数"; } }
例3-10
题目描述:编写函数求两个整数的最大公约数和最小公倍数。
设计思路:
1.利用辗转相除法求两个数的最大公约数。
2.用两数相乘除以最大公约数求得最小公倍数。
流程图:
代码实现:
#include<iostream> using namespace std; int gcd(int a, int b) { if (b == 0) return a; else gcd(b, a % b); } int g(int a, int b) { int d=gcd(a, b); return a * b / d; } int main() { int a, b; cin >> a >> b; cout<<gcd(a, b); cout << g(a, b); return 0; }
例3-12
题目描述:在主程序中提示输入整数n,编写函数用递归的方法求1+2+。。。+n的值。
设计思路:
1.设计一个函数键入一个用于存储值的符号,键入一个n,
2.每运行一次该函数,n的值减少1到n=0是为止。
3.输出计数值。
流程图:
代码实现:
#include<iostream> using namespace std; int sum(int s, int n) { s = s + n; n = n - 1; if (n != 0) { sum(s, n); } else return s; } int main() { int n; cin >> n; int a = 0; cout<<sum(a, n); return 0; }
标签:return,cout,int,namespace,课后,using,第三章,习题,gcd From: https://www.cnblogs.com/xuechenhao173/p/17351048.html