项目二:最大公约和和最小公倍数
从键盘中输入两个整数,求这两个整数的最大公约数和最小公倍数,最大公约数采用的算法是辗转相除法。其中编写自定义函数实现求最大公约数和最小公倍数
由于要返回两个结果,因为通过函数返回最小公倍数,通过引用返回最大公约数
#include <iostream> using namespace std; int fun(int x, int y) { int b = x%y; while (b != 0) { x= y; y = b; b = x%y; } return y; } void main() { int x, y, b, z; cout << "从键盘中输入两个整数" << endl; cin >> x >> y; b = fun(x, y); z = (x*y) / b; cout << "最大公约数为:" << b << endl; cout << "最小公倍数为:" << z << endl; }
请输出满足条件n=a!+b!+c!的所有三位数n,其中,a、b、c分别是n的百、十、个位数。要求用自定义函数实现求阶乘。
#include <iostream> using namespace std; int f(int n) { int a, b, c, j, m = 1, x = 1, y = 1, z; a = n / 100; b = b = (n - 100 * a) / 10; c = n % 10; for (j = 1; j <= a; j++) m = m*j; for (j = 1; j <= b; j++) x = x*j; for (j = 1; j <= c; j++) y = y*j; z = x + y + m; return z; } void main() { int i, k; for (i = 100; i<1000; i++) { k = f(i); if (k == i) cout << i; } }